计算机和编程语言
写在前面,如果有幸能被你看到我的博客,那么很高兴能为你带来哪怕一点点的帮助,但需要说明的是,请你一定带着自己的想法去看任何教程和博客。
就如我而言,在编辑过程中,很有可能因为我的不小心或我自己知识理解的偏颇,亦或者是我看的资料有问题,从而在博客中呈现错误的信息。因此,希望你能客观看待,不盲从既有的资料。
最后,可以的话,点个赞吧~
阅览目录
一、前置知识
1、不是告诉计算机what to do,而是告诉计算机what to do。
2、编程语言并非是人与计算机交流的语言,而是命令或者指令,使计算机完成你想要的操作。
3、计算机的语言:十六进制
4、从普通算法描述——>编程语言实现——>转换为十六进制。
二、程序的执行
解释:借助一个程序,他能理解你写出的程序,然后按照你的要求执行
编译:借助一个程序,它能将你的程序翻译成为机器语言——计算机能懂的语言,然后计算机就能够按照翻译而出的机器语言程序进行执行。
解释型语言python和编译型语言C语言,两者只是传统和习惯的区别。
python也可以编译运行,有人做了他的编译器;
C语言也可以解释运行,有人做了它的解释器。
以往都认为解释型语言比较慢,但现在并没有很明显的差别,计算机运行的速度已经达到了一个很高的层次。
Q:有的编程语言,源代码经过编译后形成目标代码,但是这样的目标代码不能直接在CPU上执行,而是需要由一个仿真器程序来解释执行。这样的执行方式是编译的还是解释的?
A:任何一种程序都没有绝对的类型,此处是先编译后解释。
我认为我们不能将一种编程语言绝对化,比如C语言,不能就说他是编译型语言,也有人曾经做过C语言的解释器,这样C语言就可以解释运行。同理,也有人做过python的编译器。只是我们平时比较常用某种方式而已。老师题目中说的情况让我想起了Java语言。Java语言是先通过javac.exe进行编译,编译后生成一个.class的文件,但是计算机不能直接执行.class文件,所以需要用java命令调用Java虚拟机JVM(题中的仿真程序)来解释执行。而我们都知道,Java被大家称作解释型语言,所以我觉得这道题的语言是解释型语言,执行方式是先编译后解释。另外,我认为编译型语言更多倾向于将高级语言直接编译成二进制可执行文件的语言,比如C语言。
三、为什么是C?
- 工业界使用广泛,市场占有率高;
- 不可替代性(在嵌入式、后端等方面),java之流具有替代性;
- 与其他语言具有相似语法,易上手
四、C语言简单历史
五、编译器推荐
笔者是跟着中国大学MOOC中浙江大学的《程序设计入门——C语言》进行学习的,课程有着自己配套的在线编程环境,目前为止,还不想在电脑上装编译器。
另外需要说明的是,课程推荐的小白专属编译器Dev-C++,win10系统