计算机和人脑完全不一样,计算机有自己的思维方式和行为习惯。所以有的事情人类很容易就做到了,计算机可能会很困难;而有的事情人类不擅长或者不乐意做,计算机却可能会很容易实现。学习编程就需要了解计算机做事情的方式方法,学会用计算机的方式来想问题,这就叫做计算思维

通过学习程序设计,我们能了解计算机是怎么工作的,计算机擅长什么样的工作。计算机只会一件事:你要它一步一步怎么做,它就会一步一步做,但却不知道怎样将这一步一步串连在一起,所以:

对于人来说,你要告诉他“What to do”
对于计算机来说,你要告诉它**“How to do”**

程序是用特殊的编程语言写出来表达如何解决问题。编程语言不是用来和计算机交谈,而是描述它如何做事情的过程和方法。

我们要让计算机做计算,就需要找出计算的步骤,然后用编程语言写出来。计算机做的所有事情都叫做计算,并不仅仅指加减乘除。而计算的步骤就是算法

Q1:计算机里的CPU可以直接运行人类编写的程序吗?为什么说编程语言不是和计算机交谈的语言?
计算机CPU不可以直接运行人类编写的程序。人类编写的程序语言属于高级语言,而计算机能识别的是机器语言。人类所理解和编写的语言需要通过编译器将高级语言转化为机器语言才能被计算机识别。

程序的执行分为两种:
解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行
编译:借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂的语言——机器语言——写的程序,然后这个机器语言写的程序就能直接执行了。

解释语言VS编译语言
语言本身没有解释/编译之分,只是每一种语言都有一种常用的方式,例如C语言常用编译的方式,Python常用解释的方式。
解释型语言有特殊的计算能力。编译型语言有确定的运算性能。由于目前计算机的计算速度已经到达非常高的层次,两种方式的运行效率差异不大。

Q2:有的编程语言,源代码经过编译后形成目标代码,但是这样的目标代码不能直接在CPU上执行,而是需要由一个仿真器程序来解释执行。这样的执行方式是编译的还是解释的?
语言本身没有解释/编译之分,我们不能说它是编译型语言或者解释型语言,只是编译或者解释是我们常用的方式。如Java是需要编译的,但是没有直接编译成机器语言,而是编译成字节码,然后在Java虚拟机上用解释的方式执行字节码,Python也是使用了类似的方式。

C语言_学习笔记_(一)程序设计与C语言相关推荐

  1. 韩顺平php可爱屋源码_韩顺平_php从入门到精通_视频教程_第20讲_仿sohu主页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理...

    韩顺平_php从入门到精通_视频教程_第20讲_仿sohu首页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理 对sohu页面的分析 注释很重要 经验:写一点,测试一点,这是一个很好的方法. ...

  2. C语言程序设计(第4版)谭浩强著—学习笔记chapter one 程序设计与C语言

    第一章 程序设计与C语言 1.1机器语言和高级语言 1.2 C语言的出现和发展过程 1.3简单的C语言程序 stdio.h main函数 printf函数 scanf函数 格式字符串 \n换行符 re ...

  3. 机器学习_周志华_西瓜书_学习笔记_第二章--模型的评估与选择

    2 模型的评估与选择 2.1 误差与过拟合 我们将学习器对样本的实际预测结果与样本的真实值之间的差异成为:误差(error).定义: 在训练集上的误差称为训练误差(training error)或经验 ...

  4. Net基础篇_学习笔记_第十一天_面向对象(类)

    类 语法: [public] class 类名 {  字段;  属性;  方法; } 写好了一个类之后,我们需要创建这个类的对象, 那么,我们管创建这个类的对象过程称之为类的实例化. 使用关键字 ne ...

  5. python编程:从入门到实践--项目1-外星人入侵_学习笔记_源码

    这里有九个.py文件,在工作的间隙,和老板斗智斗勇,终于完成了,实现了游戏的功能,恰逢博客园开通,虽然是对着书上的代码敲了一遍,但是对pygam这个库的了解增加了一些,作为一个python初学者,也作 ...

  6. Net基础篇_学习笔记_第十二天_面向对象继承(字符串_字符串的不可变性)

    字符串的特点之一: 字符串的不可变性 1).字符串的不可变性 当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值. 当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向, ...

  7. .Net基础篇_学习笔记_第六天_For循环语法

    For循环:专门处理已知循环次数的循环.  小技巧:连续敲击两下TAB键循环体自动搭建完成. For循环语法: for(表达式1;表达式2;表达式3) { 循环体; } 表达式1一般为声明循环变量,记 ...

  8. 深度实践SPARK机器学习_学习笔记_第二章2.3加载数据

    2.3加载数据 1.下载数据文件u.user head -3 u.user ##查看文件前几行 cat u.user |wc -l 或者 more u.user |wc -l    ##数文件记录数 ...

  9. c语言运算符感想,C语言运算符学习笔记

    运算符不仅具有不同的优先级,还有不同的结合性.在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算. C语言的 ...

最新文章

  1. 计算机科学和PYTHON编程导论_15_概率与分布
  2. 使用registerForActivityResult替代onActivityResult
  3. LDA基本介绍以及LDA源码分析(BLEI)
  4. React Native 环境搭建步骤
  5. fft ocean注解
  6. github使用-知乎的某小姐的一篇文章
  7. 可以用计算机进行模拟实验,随着信息技术的发展,包括核实验在内的许多科学研究都可以用计算机进行模拟实验, - 问答库...
  8. 通过xalan实现关系型数据库到XML的数据交换
  9. Grails枚举一例
  10. 计算机辅助设计与制造考试重点,计算机辅助设计与制造复习内容
  11. C Primer Plus 第七章 第七题
  12. 习题合集-数据结构导论
  13. 基于vue+ts实现的svg可视化web组态编辑器
  14. 关于Android的.so文件你所需要知道的 - 简书
  15. 前端安全XSS,CSRF
  16. Blogspot.com再次解封
  17. java计算机毕业设计销售企业报价管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  18. 深入CSS vertical-align属性
  19. No qualifying bean of type 'com.xxx.xx.service.xxService' available: expected at leas
  20. 改进的粒子滤波算法及其应用研究(Matlab代码实现)

热门文章

  1. Final Test(FT测试)
  2. python在无人驾驶中的应用_深度学习在无人驾驶汽车中的应用
  3. java 爬取快递100 快递信息
  4. 车载DSP音频功放频率响应曲线2.5到20khz增益降太多是什么原因?
  5. 如何在linux终端创建txt文件,在Linux中,如何使用 命令行 快速创建一个文本文件...
  6. 长沙岳阳308公里往返骑行拉练
  7. python 一键下载酷狗歌单
  8. 收集一些感觉不错的旅游圣地吧
  9. JavaMail详解
  10. java中文处理学习:Hello Unicode