1.1.1 什么是程序?
一、什么是程序
程序=数据结构+算法
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
打个比方,如果我们要做一盘番茄炒蛋(程序),就需要番茄、鸡蛋、小葱等食材(数据结构),还需要做菜的方法即菜谱(算法),按照菜谱的步骤来处理食材(运行程序),最终得到一盘番茄炒蛋。
二、计算机的基本组成
计算机的五大部件
(图片来源于网络)
简单来说,计算机将需要处理的数据保存在存储器(内存)中,然后通过CPU来不断对内存中的数据进行取出、计算、存入。
打个比方,CPU就相当于做菜的大厨,他负责对食材(数据)的处理。但是程序毕竟不是做菜,在实际过程中会复杂得多。
三、编程语言的发展历程
第一代:机器语言
第二代:汇编语言
第三代:高级语言
四、现在常用编程语言
C语言:面向过程的经典语言,有益于编写小而快的程序,很容易与汇编语言结合,具有很高的标准化,主要应用于底层程序,例如嵌入式、单片机、操作系统等。
C++语言:具有面向对象特性的C语言的继承者,比C慢,组织大型程序时比C语言好得多。
Java语言:面向对象,“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。跨平台、可移植性、多线程,大量用于服务器开发、桌面程序、游戏开发等。
C#语言:在Java流行起来后所诞生的一种新的程序开发语言,面向微软系统,功能和语法与Java类似。
Python语言:Python 是一个面向对象的拥有丰富扩展功能的简单易学的语言。主要用于网络爬虫、大数据分析与处理领域。
HTML:超文本标记语言,用于制作开发web网页。
Javascrip:具有函数优先的轻量级,解释型或即时编译型的编程语言,作为开发Web页面的脚本语言而出名,基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
PHP:是在服务器端执行的脚本语言,主要用于简单web开发
1.1.1 什么是程序?相关推荐
- 编程精粹 --Microsoft编写优质无错C程序秘诀
献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...
- POCO C++库学习和分析 -- 序
POCO C++库学习和分析 -- 序 1. POCO库概述: POCO是一个C++的开源库集.同一般的C++库相比,POCO的特点是提供了整一个应用框架.如果要做C++程序应用框架的快速开发,我觉得 ...
- 程序主动进行电话短信报警,自定义电话、短信、钉钉报警通知
程序主动进行电话短信报警,自定义电话.短信.钉钉报警通知 一. 规则说明 这里我们要利用到阿里云的云监控的手段,有一个叫做事件监控的东西,可以通过自定义事件上传来进行监控报警. 流程: 程序发现错误 ...
- 终止js程序执行的方法
js终止程序执行的方法共有三种 (一)在function里面(普通js方法) (1)return; (2)return false; (二)非function方法里面(如ajax方法) alert(& ...
- 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...
- 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...
- 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...
- 基于Golang的对象序列化的程序包开发——myJsonMarshal
基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...
- 【golang程序包推荐分享】go-ini、viper、godoc
[golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...
- 基于Golang的监听读取配置文件的程序包开发——simpleConfig_v1
基于Golang的监听&读取配置文件的程序包开发--simpleConfig_v1 [阅读时间:约10分钟] 一.配置文件概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 ...
最新文章
- python课程怎么样-python课程体系是怎么样的?
- 利用RTL2832u电视棒芯片追踪民航飞机轨迹
- Linux有关Shell变量的笔记
- C# 7.0 新特性3: 模式匹配
- lua学习笔记(三)
- Markdown_合并表格中的单元格
- Geotools之“Hello World”——打开本地shp文件并显示
- IoU实现 python
- linux与Windows查看路由
- python编写计算器实例,Python只用40行代码编写的计算器实例
- 二本华南师范计算机考研,经验贴|19华师软工专硕|初试415,二本逆袭211
- 《超越自卑的活法Live》内容整理
- HTML5前端开发之基础篇
- Android 获取DNS
- 写得太好了,关于《越狱》的影评(转贴)
- ue4 Sequencer笔记
- 虹科技术 | 终端入侵防御 | 在重大攻击中发现新的Babuk勒索软件
- 使用Cheat Engine(CE)来对植物大战僵尸进行逆向分析
- Jmeter测试数据怎么保存
- 网易云课堂web安全学习第七天——了解url跳转漏洞
热门文章
- Event representations with tensor-based compositions笔记
- 基于拉格朗日差值算法的BMP图像缩放
- 免费FTP解决方案之FileZilla
- 用网盘和git来管理资源
- 蜗牛学院:中国人,努力获得了荣誉却要压抑克制
- blackbox_exporter 黑盒监测
- 《秘密》之你的秘密和生命的秘密
- java 微信群组头像_仿微信生成群组头像
- 《算法导论》第16章-贪心算法 16.1-活动选择问题(含C++代码)
- 2021.4.17日简报:五子登科、BMEX、优选家、加电、链淘等项目