三、计算机语言的介绍
最后更新于:2022-04-01 21:47:21
## 三、计算机语言的介绍
----From a high school student's view to learnPython
关键字:高中生 学编程 Python语言 计算机语言 初学者如何选择计算机语言
在之前的博文中给大家大概的阐述了一下计算机的组成,可是计算机到底是怎样来执行各种指令的呢,本篇主要介绍这方面的内容。
由于涉及到计算机原理方面的内容都比较高深,我还是采用摘录的方式来进行组织,大部分的内容来源于《**计算机组成与设计:硬件/软件接口**》,第四版,非常非常好的书,很容易看懂。
[第一章](http://images.china-pub.com/ebook190001-195000/194732/ch01.pdf) [第二章](http://images.china-pub.com/ebook190001-195000/194732/ch02.pdf)
(一)、计算机指令
主要了解计算机是如何运行的:
1、 阅读[第一章](http://images.china-pub.com/ebook190001-195000/194732/ch01.pdf)的1.2小节“从高级语言到硬件语言”,主要明白机器所识别的语言以及高级语言是如何转变为机器能够识别的语言
2、 阅读[第二章](http://images.china-pub.com/ebook190001-195000/194732/ch02.pdf)的2.1、2.2明白机器指令的概念,了解一般的机器指令如何分类、作用
3、 阅读[第二章](http://images.china-pub.com/ebook190001-195000/194732/ch02.pdf)的2.3小节,明白寄存器、存储器的区别,大致理解高级语言与机器语言的转换
4、 阅读[第二章](http://images.china-pub.com/ebook190001-195000/194732/ch02.pdf)的2.4小节,这一节非常的重要,计算机的基础,二进制必须搞明白
5、 [第二章](http://images.china-pub.com/ebook190001-195000/194732/ch02.pdf)的2.6小节,介绍计算机如何实现基本的逻辑操作
6、 [第二章](http://images.china-pub.com/ebook190001-195000/194732/ch02.pdf)的2.7小节,介绍计算机的基本结构化指令:判断和决策、循环
这些章节的阅读,对于进一步理解计算的基本原理以及计算机语言的初步了解非常有帮助。
(二)、计算机语言的历史:(Programming Language Cultures)
Programs for modern computersconsist of sequences of instructions that are encoded as numericdigits. This encoding system is known as a machine language.Unfortunately, writing programs in a machine language is so tediousthat often leads to errors that must be corrected before the job isfinished.
In the 1940s, researcherssimplified the programming process by developing notational systemsby mnemonic instructions. With the development of mnemonic system,a programs called assemblers were developed to convert mnemonicexpressions into machine language instructions. Then computersscientists began developing programming languages that were moreconducive to software development that those assembly languages.The result was the emergence of a third generation of programminglanguages that were both higher level and machine independent (inthat they did not rely on the characteristics of a particularmachine). The third generation of programming languages containFORTRAN, COBOL, and ALGOL.
6 0年代中后期,出现了“软件危机”。软件越来越多,规模越来越大,因为缺乏科学规范的系统规划与测试、评估标准,所以建立起大批耗费巨资的软件系统,这些软件系统含有错误而无法使用,因此给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这时人们认识到大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便于验证正确性。后来有人提出了“结构化程序设计方法”。终于,第一个结构化程序设计语言—Pascal语言在1970年出现了,这标志着结构化程序设计时期的开始。
In the beginning of 1980s, therewas a great revolution on the design of software, which was theobject-oriented paradigm, which is associated with the programmingprocess called object-oriented programming. Following thisparadigm, a software system is viewed as a collection of unitscalled objects, each of which is capable of performing the actionsthat are immediately related to itself as well as requestingactions of other objects. Together, these objects interact to solvethe problem at hand. C++, VB, Delphi is the typicalrepresentation.
(三)、计算机语言的种类
计算机语言有许多,具有代表性的一些高级语言有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、Delphi、JAVA等。
下面就向大家介绍几种:
1.BASIC
BASIC(Beginners' All-purpose Symbolic InstructionCode,又译培基),意思就是“初学者的全方位符式指令[代码](http://baike.baidu.com/view/41.htm)”,是一种设计给初学者使用的[程序设计语言](http://baike.baidu.com/view/128511.htm)。BASIC是一种直译式的[编程语言](http://baike.baidu.com/view/552871.htm),在完成编写后不须经由编译及连结等手续即可执行,但如果需要单独执行时仍然需要将其建立成执行档。[BASIC语言](http://baike.baidu.com/view/329004.htm)是由Dartmouth学院JohnG.Kemeny与ThomasE.Kurtz两位教授于1960年代中期所创。由于立意甚佳,BASIC语言简单、易学的基本特性,很快地就普遍流行起来,几乎所有小型、微型家用电脑,甚至部分大型电脑,都有提供使用者以此种语言撰写程式。
2.Visual Basic
Visual Basic is anobject-oriented programming language that was developed byMicrosoft as a tool by which users of Microsoft’s Windows operatingsystem could develop their own GUI applications. Actually, VisualBasic is more than a language, it is an entire software developmentpackage that allows a programmer to construct applications frompredefined components and to customize these components bydescribing how they should react to various events.
3.JAVA
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由[SunMicrosystems](http://baike.baidu.com/view/1061350.htm)公司于1995年5月推出的Java程序设计语言和[Java平台](http://baike.baidu.com/view/209634.htm)(即JavaSE,JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、[数据中心](http://baike.baidu.com/view/754520.htm)、游戏控制台、[科学](http://baike.baidu.com/view/3805.htm)[超级计算机](http://baike.baidu.com/view/296324.htm)、移动电话和[互联网](http://baike.baidu.com/view/6825.htm),同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
4.Python
Python is programming languagethat was created by Guido van Rossum in the late 1980s. Today it ispopular in developing Web applications, in scientific computationand as an introductory language for students. Python emphasizesreadability, and includes elements of the imperative,object-oriented, and functional programming paradigms. Python isalso an example of a modern language that uses a form of fixedformatting. It uses indentation to denote program blocks, ratherthat punctuation marks or reserved words.
5.C/C++
C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THEC PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准协会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。
在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。MicrosoftVisualC++ 基本上是windows系统下的最主要开发工具。
C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。
但是,C是C++的基础,C++语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。
同时,现在非常火热的苹果系统(macos以及IOS)都采用Objective C,它也是一个C语言为基础的扩展集。
到底选择一门什么样的语言作为自己第一门入门、学习的语言呢?其实在之前也有过简单的说明,Python作为入门是非常合适的,准备工作非常的简单,所需的软件也都免费,虽然Microsoft也提供免费的基础版本软件,但Microsoft的东西向来以庞大、复杂著称,所以,如果自学,首选还是Python,在有相当的基础之后,我们在开始接触C语言、C++语言或者ObjectiveC,关键还看你准备在哪个操作系统平台上进一步学习。
(四)、结束
这几篇的内容,写起来非常的纠结,都是基础、比较理论,对于大多数的只是我也属于初学者,所以为了不让大家走弯路,引用一些书籍上的内容,当然,更详细的内容还需要大家去进一步的阅读。相关的资料都有链接供大家直接使用。
最后,也添加一个MIT公开课的视频剪辑,也是关于计算机语言方面的。
我的更多文章:
- [Python程序调试的一些体会](http://blog.sina.com.cn/s/blog_d6cca93e0101ewc9.html)(2013-10-06 22:57:35)
- [十四、Python编程计算24点(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101euxx.html)(2013-10-03 22:18:28)
- [十三、Python编程计算24点(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101eukc.html)![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "此博文包含图片")
(2013-10-02 22:15:46)
- [十二、Python简单数据结构应用(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101euk8.html)(2013-10-02 22:10:41)
- [十一、Python简单数据结构应用(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ep9z.html)(2013-09-23 23:31:49)
- [十、Python编程解决组合问题(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101entc.html)![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "此博文包含图片")
(2013-09-21 23:37:27)
- [九、Python编程解决组合问题(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ent7.html)(2013-09-21 23:32:54)
- [八、Python的函数编程(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101ekwj.html)![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "此博文包含视频")
(2013-09-20 23:09:39)
- [七、Python的函数编程(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ekwg.html)![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "此博文包含视频")
(2013-09-20 23:09:10)
- [高中生如何学编程](http://blog.sina.com.cn/s/blog_d6cca93e0101e8fn.html)(2013-09-02 19:26:01)
';