计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
1 机器语言
电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。
2 汇编语言
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。
汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。
3 高级语言
从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言—F O RT R A N问世了,40多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有F O RT R A N、A L G O L、C O B O L、B A S I C、L I S P、S N O B O L、P L / 1、P a s c a l、C、P R O L O G、A d a、C + +、V C、V B、D e l p h i、J AVA 等。
高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。
60年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这一切,极大地震动了计算机界,史称“软件危机”。人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便于验证正确性。1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言—P a s c a l语言出现,标志着结构化程序设计时期的开始。
80年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(o b j e c t)。其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C + +、V B、D e l p h i就是典型代表。
高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。
vc++是面向对象的高级语言。
与手工编程相比,自动编程具有以下主要特点:\x0d\ (1) 数学处理能力强\x0d\ 对轮廓形状不是由简单的直线、圆弧组成的复杂零件,特别是空间曲面零件,以及几何要素虽不复杂,但程序量很大的零件,计算工作相当繁琐,采用手工编制程序的方法是难以完成的。例如,对一般二次曲线廓形,手工编程必须采取直线或圆弧逼近的方法,算出各节点的坐标值,其中列算式、解方程,虽说能借助计算器进行计算,但工作量之大是难以想象的。而自动编程借助于系统软件强大的数学处理能力,计算机能自动计算出加工该曲线的轨迹,快速而又准确。自动编程系统还能处理手工编程难以胜任的二次曲面和特殊曲面。\x0d\(2) 快速、自动生成数控程序\x0d\对非圆曲线的轮廓加工,手工编程即使解决了节点坐标的计算,也往往因为节点数过多,程序段很大而使编程工作又慢又容易出错。自动编程的优点之一,就是在完成计算运动轨迹之后,后置处理程序能在极短的时间内自动生成数控加工程序,且该数控加工程序不会出现语法错误。当然自动生成数控加工程序的速度还取决于计算机硬件的档次,档次越高,速度越快。\x0d\(3) 后置处理程序灵活多变\x0d\由于数控系统的指令形式不尽相同,机床的辅助功能也不一样,伺服系统的特性也有差别。因此,同一个零件在不同的数控机床上加工,数控加工程序也应该是不一样的。但在前置处理过程中,大量的数学处理,轨迹计算却是一致的。这就是说,前置处理可以通用化,只要稍微改变一下后置处理程序,就能自动生成适用于不同数控机床的数控程序来。后置处理相比前置处理,工作量要小得多,程序简单得多,因而它灵活多变。对于不同的数控机床,取用不同的后置处理程序,等于完成了一个新的自动编程系统,极大地扩展了自动编程系统的使用范围。\x0d\(4) 程序自检、纠错能力强\x0d\复杂零件的数控加工程序往往很长,要一次编程成功,不出一点错误是不现实的。手工编程时,可能出现书写有错误,算式有问题,也可能程序格式出错,靠人工检查一个个的错误是困难的,费时又费力。采用自动编程,程序有错主要是原始数据不正确而导致运动轨迹有误,或与工件干涉,或与机床相撞,等等。自动编程能够通过系统先进的、完善的诊断功能,在计算机屏幕上对数控加工程序进行动态模拟,连续、逼真地显示加工轨迹和零件加工轮廓,发现问题能及时对数控加工程序中产生错误的位置及类型进行修改,快速又方便。现在,往往在前置处理阶段计算出运动轨迹以后立即进行动态模拟检查,确定无误以后再进入后置处理阶段,生成正确的数控加工程序来。\x0d\(5) 便于实现与数控系统的通讯\x0d\自动编程系统可以利用计算机和数控系统的通讯接口,实现自动编程系统和数控系统间的通讯。自动编程系统生成的数控加工程序,可直接输入数控系统,控制数控机床进行加工。如果数控程序很长,而数控系统的程序存储器容量有限,不足以一次容纳整个数控加工程序,编程系统可以做到边输入,边加工。自动编程系统的通讯功能进一步提高了编程效率,缩短了生产周期。
int main()
{
Link head; //链表(不带头节点)
int n;
printf("输入链表的长度n: ");
scanf("%d",&n);
printf("连续输入%d个数据(以空格隔开): ",n);
head=CreateLink(n);
printf("\n原本链表的节点是: ");
DispLink(head);
LinkSort(head);
printf("\n从大到小排序之后: ");
DispLink(head);
printf("\n");
return 0;
}
链表的具体存储表示为:
① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)
② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))
链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。
百度百科-单链表
以上就是关于计算机程序设计语言有哪些_计算机程序设计语言的发展过程全部的内容,包括:计算机程序设计语言有哪些_计算机程序设计语言的发展过程、手工编程与自动编程的主要区别、编写程序,建立一个带有节点的单向链表,输入字符串,并按从小到大顺序组织到链表中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)