计算机专业英语第二版张强华翻译_计算机语言发展的三个阶段,机器语言、汇编语言与高级语言...

在如今信息发达的时代,科技日新月异,计算机和Internet网络的发展也成为人们日常生活的重要部分。学习一两门计算机编程语言也如当初学习英文一样的火热,随着人工智能AI和云计算的不断发展,Python语言和Scala语言已经成为这两个领域里面最为火热的编程语言了,可以预知未来学习计算机编程语言的人也一样会如同学习英文一样的成为一种新常态,并且成为一种稳定的常态。以下笔者将以自己的学习认知,简单的阐述一下计算机编程语言的发展。

6aceea848a477c378cec7040bf380e0d.png

编程语言简介

计算机语言,英文名Computer Language,或者Programming Language,指的是人与计算机进行交互的一种语言,就如我们学习外语一样的,只是一种形式工具,主要与计算机交流的是我们的思想,将我们自己的思想以计算机能识别的语言赋予他,就形成了程序。

而实现我们的思想的一系列的问题的就是向计算机发送指令,对于通信的双方而言,指令的格式,组成字符,数字数据,语法等一系列的标准就很重要了,而我们学习的就是这一系列的标准,从而能将自己的思想赋予计算机,让计算机能智能化、自动化的为我们服务。随着这一思想的不断演化发展,就逐步形成了一种新的语言,即就是计算机语言!

1946年,于宾夕法尼亚大学,莫克利(JohnW.Mauchly)和艾克特(J.PresperEckert)发明了世界上第一台通用计算机,命名为“ENIAC”。那时候程序员必须手动控制计算机,当时唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽(konradzuse)。

计算机语言发展简史

计算机是一系列的硬件构成的能完成强大功能的一个结合体,他唯一能够识别的就是逻辑运算,即0和1,所以最初的计算机交互语言是以二进制的机器语言,由于太难理解与记忆,人们就定义了一系列的助记符帮助理解与记忆,就逐渐产生了汇编语言,但是汇编还是不好理解与记忆,就逐渐发展了高级语言。随着C、Fortran等结构化高级语言的诞生,使程序员可以离开机器层次,通过更加抽象的层次来表达自己的思想,同时也诞生的三种重要控制结构,即就是顺序结构、选择结构、循环结构,以及一些基本数据类型都能够很好的让程序员以接近问题本质的方式去描述、抽象问题。但随着需要处理的问题规模的不断扩大,一般的程序设计模型无法克服错误随着代码的扩大而级数般的扩大,这个时候就出现了一种新的思考程序设计方式和程序设计模型,即就是面向对象程序设计,同时也诞生了一批支持这种设计模型的计算机语言,例如C++、Java、Python等。

简而言之,计算机语言从最初的机器语言(二进制),发展到使用助记符的汇编语言,再到更易理解的高级语言,包括C、C++、Java、C#、Python等等。计算机程序的设计模型从结构化的编程,再到面向对象的编程。当然计算机只能识别二进制语言,那么很明显在其他计算机语言与机器语言之间就有着一个桥梁,起着翻译一样的功能,使得通信双方能够交流,而这个翻译官就是编译器。而由于编译的原理不一样,我们将计算机语言分为编译性语言(例如C、C++)和解释性语言(Shell、Python)。

第一代计算机编程语言

第一代的计算机语言就是机器语言,即就是01组成的代码,人们通过01与计算机进行交互与数据交换,这样的编程实在是太难,对于大多数人来说都是十分的困难的,随着其时间的发展,就逐步演化了第二代计算机语言。不过这是计算机的基础,因为计算机硬件只能识别01的二进制,无论后面的计算机语言如何发展,最总在计算机内能够执行的只能是01的二进制编码,故而后面所有的计算机语言都需要一个翻译的东西,将其翻译为二进制的编码执行,这个起着翻译官作用的就是编译器!

第二代计算机编程语言

由于第一代计算机语言的学习难度系数极高,就发展出使用一些助记符来帮助人们编程,这就是第二代编程语言——汇编语言,使人们与计算机进行交流沟通时便捷一些,人们学习编程起来也比较容易,这种使用英文助记符来帮助人们进行编程,再由编译器翻译为01的代码,这样计算机就能识别了。但是随着信息技术的不断发展,汇编语言已经不能够满足大部分人们的需求,就催生了第三代计算机编程语言。

第三代计算机编程语言

所谓的第三代计算机编程语言,就是大家经常熟知的一些编程语言。而对于计算机高级语言的发展分为两个阶段,以 1980 年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,后一阶段属于面向对象的语言。

然而对于什么叫面向过程,什么叫面向对象?这是很难解释的一个问题,故而暂时不需要深入理解,简单来说就是编程时的两种设计思想。

面向过程语言中最经典、最重要的就是C语言。Fortran、Basic 和 Pascal 语言基本上已经很少有人使用了。但是C语言一直在用,因为C语言是计算机领域最重要的一门语言,其在liunx编程和嵌入式编程有极大的地位。但是C语言也有缺陷,它的缺陷只有在学完面向对象语言之后才能体会到。

故而从 20 世纪 80 年代开始又产生了另外一种“以面向对象”为思想的语言,其中最重要、最复杂的就是 C++。C++ 从易用性和安全性两个方面对C语言进行了升级。C++ 是一种较复杂、难学的语言,但是一旦学会了则非常有用。因为 C++ 太复杂,所以后来就对 C++ 进行了改装,产生了两种语言,一个是 Java,另一个是 C#。Java 语言是现在最流行的语言之一。C# 则是微软公司看 Java 很流行而写的一个与 Java 语法相似的语言。因为 Java 和 C# 几乎是一模一样的,所以你只需要学习其中的一种语言就可以了。

同时随着近年来的人工智能和云计算的火热发展,Python语言和Scala语言成为人工智能和云计算Hadoop框架的重要编程语言,逐渐成为时代的主流编程语言。在计算机的领域里,还有一些专用的计算机编程语言,不如网页设计的三要素:HTML、CSS和JavaScript ,这三者就是专用的计算机编程语言。

在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏多智时代,及时获取人工智能、大数据、云计算和物联网的入门知识和资讯信息,让我们一起携手,引领人工智能的未来

458a0624faf4d28be6e1a91e85e27547.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java netty html_源码时代JAVA干货分享|带你用Netty框架实现WebSocket通信

功能介绍Netty开发服务器HTML实现客户端实现服务端与客户端时实时交互开发步骤1.导包io.nettynetty‐all5.0.0.Alpha22.工程配置文件:NettyConfig/*** 这里放的是工程中相应的配置*/public class NettyConfig{/*** 用于存储每一个客户端接入进来时的channel对象*/pu…

使用Apache Drill REST API通过Node构建ASCII仪表板

Apache Drill有一个隐藏的瑰宝:易于使用的REST接口。 该API可用于查询,分析和配置Drill引擎。 在此博客文章中,我将说明如何使用Brilled Contrib使用Drill REST API创建ascii仪表板。 ASCII仪表盘如下所示: 先决条件 Node.js …

mysql+cast+0x_mysql cast与convert 函数的用法

MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下:CAST(value as type);CONVERT(value, type);就是CAST(xxx AS 类型), CONVERT(xxx,类型)。可以转换的类型是有限制的。这个类型可以是以下值其中的一个&a…

影子场vs.属性访问器接口第2轮

如果你们还没有注意到Dirk Lemmerman和我之间的(轻松) 对决 ,那么让我快速提及一下我们是如何做到这一点的。 首先,Dirk创建了JavaFX技巧23:“ 为属性保存内存阴影字段 ”,以帮助应用程序开发人员在使用Jav…

java wmi远程桌面服务器_WMI实现远程监控多台windows服务器

简介WMI简介:WMI(Windows Management Instrumentation,Windows 管理规范)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。WQL简介:WQL就是WMI中的查询语言,WQL的全称是WMI Query Language,简称…

如何:在Spring中使用@Conditional和Condition注册组件

Spring中的Profile批注可以用于任何自动检测候选的Spring组件(例如, Service Component, Service Component , Service Configuration等)。 Profile批注接受单个配置文件或一组必须是活动的配置文件,以使带…

java joda_java-Jodatime的开始时间和结束时间

对于那些来这里寻找“ js-joda”答案的人,您有两种选择,具体取决于要完成的工作选项1:您希望同一时区的一天开始由于您已选择根据与时区相关的即时时间来计算时间,因此应使用ZonedDateTime:import { ZonedDateTime, Lo…

Lowest Common Ancestor of a Binary Search Tree a Binary Tree

235. Lowest Common Ancestor of a Binary Search Tree 题目链接:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/#/description 题目大意:给定一棵二叉查找树和两个节点p和q,要求返回这两个节点的第一个公共…

perl java_与Perl相比Java性能问题

我已经编写了一个Perl代码来处理大量CSV文件并获取输出,这需要0.8326秒才能完成.my $opname $ARGV[0];my files find . -name "*${opname}*.csv";mtime -10 -type f;my %hash;foreach my $file (files) {chomp $file;my $time $file;$time ~ s/.*\~(.*?)\..*/$1/…

controller调用另一个controller中的方法 获取返回值_必须掌握!你知道 Spring 中运用的 9 种设计模式吗 ?...

Spring中涉及的设计模式总结,在面试中也会经常问道 Spring 中设计模式的问题。本文以实现方式、实质、实现原理的结构简单介绍 Sping 中应用的 9 种设计模型,具体详细的刨析会在后面的文章发布,话不多说,来个转发、在看、收藏三连…

我个人的CRUD故事-或我如何来到CUBA平台

在此博客文章中,我想介绍一下我如何使用CUBA平台以及此工具的好处。 在我年轻的“业务应用程序开发”历史上,我将深入探讨不同的阶段,只为您提供一些背景知识。 因此,让我们从如何进入典型的CRUD应用程序开始,以帮助非…

MySQL分库分表环境下全局ID生成方案

转自:https://my.oschina.net/u/142836/blog/174465 在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作。在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用…

java 不定参数方法_java中不定长参数的使用方法

java中不定长参数的使用方法不定长参数方法的语法如下:返回值 方法名(参数类型...参数名称)在参数列表中使用“...”形式定义不定长参数,其实这个不定长参数a就是一个数组,编译器会将(int...a)这种形式看作是(int[] a)的形式。示例&#xff1…

光盘刻录只允许读取不能拷贝_原来 8 张图,就可以搞懂「零拷贝」了

作者 | 小林coding来源 | 小林coding(ID:CodingLin)前言磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是…

如何:带有Thymeleaf和Spring Boot的Java 8日期和时间

如果您碰巧使用Spring Boot和Thymeleaf,并且需要在视图中格式化Java 8 Date&Time对象,则可以使用thymeleaf-extras-java8time –用于Java 8 Date&Time API的Thymeleaf模块。 向现有的基于Maven或Gradle的Spring Boot项目中添加th…

纯java分布式内存数据库_最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发...

最近可能有点闲的慌,没事就去找面试面经,整理了一波面试题。我大概是分成了Java基础、中级、高级,分布式,Spring架构,多线程,网络,MySQL,Redis缓存,JVM相关,调…

c++ 多核cpu序列号_详解CPU几个重点基础知识

作者 | 骏马金龙责编 | 阿秃关于CPU和程序的执行1、程序的运行过程,实际上是程序涉及到的、未涉及到的一大堆的指令的执行过程。当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便知道类型和操作数,简单…

5.8上午

数学分册基础概念 转载于:https://www.cnblogs.com/yanyuying/p/6828791.html

java log4j 写日志_Java log4j同时写入文本日志和数据库日志

版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创!恰饭广告Log4jUtil.javaimport org.apache.log4j.Logger;import org.apache.log4j.MDC;public class Log4jUtil {private static Logger logger Logger.…

订单生产计划表范本_工厂生产管理为什么需要ERP软件?

对于工厂来说,规模大了,管理问题也就随之多了,在工厂生产流程中,我们常见的一些生产现象,比如生产计划表徒具形式、各生产部门半成品堆积、生产计划达标率低、前后工序原材料或半成品衔接不上、经常追加或取消生产计划…