早期电脑都直接采用机器语言,即用“0”和“1”为指令代码来编写程序,难写难读,编程效率极低。为了方便编程,随即出现了汇编语言,虽然提高了效率,但仍然不够直观简便。从1954年起,电脑界逐步开发了一批“高级语言”,采用英文词汇、符号和数字,遵照一定的规则来编写程序。高级语言诞生后,软件业得到突飞猛进的发展。
1953年12月, IBM公司程序师约翰·巴科斯(J Backus) 写了一份备忘录,建议为IBM704设计一种全新的程序设计语言。巴科斯曾在“选择顺序控制计算机”(SSEC)上工作过3年, 深深体会到编写程序的困难性。他说:“每个人都看到程序设计有多昂贵,租借机器要花去好几百万,而程序设计的费用却只会多不会少。”
巴科斯的目标是设计一种用于科学计算的“公式翻译语言”(FORmula TRANslator)。他带领一个13人小组,包括有经验的程序员和刚从学校毕业的青年人,在IBM704电脑上设计出编译器软件, 于1954年完成了第一个电脑高级语言——FORTRAN语言。1957年,西屋电气公司幸运地成为FORTRAN的第一个商业用户, 巴科斯给了他们一套存储着语言编译器的穿孔卡片。 以后,不同版本的FORTRAN纷纷面世,1966年,美国统一了它的标准,称为FORTRAN 66语言。 40多年过去,FORTRAN仍然是科学计算选用的语言之一,巴科斯因此摘取了1977年度“图林奖”。
FORTRAN广泛运用的时候, 还没有一种可以用于商业计算的语言。美国国防部注意到这种情况, 1959年5月,五角大楼委托格雷斯·霍波博士领导一个委员会,开始设计面向商业的通用语言(Common Business Oriented Langauge) ,即COBOL语言。COBOL最重要的特征是语法与英文很接近, 可以让不懂电脑的人也能看懂程序;编译器只需做少许修改,就能运行于任何类型的电脑。委员会一个成员害怕这种语言的命运不会太长久, 特地为它制作了一个小小的墓碑。然而,COBOL语言却幸存下来。1963年,美国国家标准局将它进行了标准化。用COBOL写作的软件,要比其他语言多得多。
1958年,一个国际商业和学术计算机科学家组成的委员会在瑞士苏黎世开会,探讨如何改进FORTRAN,并且设计一种标准化的电脑语言,巴科斯也参加了这个委员会。1960年,该委员会在1958年设计基础上,定义了一种新的语言版本——国际代数语言ALGOL 60,首次引进了局部变量和递归的概念。 ALGOL语言没有被广泛运用,但它演变为其他程序语言的概念基础。
60年代中期, 美国达特默斯学院约翰·凯梅尼 (J Kemeny) 和托马斯·卡茨(TKurtz)认为,象FORTRAN那样的语言都是为专业人员设计,而他们希望能为无经验的人提供一种简单的语言,特别希望那些非计算机专业的学生也能通过这种语言学会使用电脑。于是, 他们在简化FORTRAN的基础上, 研制出一种 “初学者通用符号指令代码”(Beginners All purpose Symbolic Intruction Code),简称BASIC。由于BASIC语言易学易用, 它很快就成为最流行的电脑语言之一,几乎所有小型电脑和个人电脑都在使用它。经过不断改进后,它一直沿用至今,出现了象QBASIC、VB等新一代BASIC版本。
1967年,麻省理工学院人工智能实验室希摩尔·帕伯特(SPapert),为孩子设计出一种叫LOGO的电脑语言。帕伯特曾与著名瑞士心理学家皮亚杰一起学习,他发明的LOGO最初是个绘图程序,能控制一个“海龟”图标,在屏幕上描绘爬行路径的轨迹,从而完成各种图形的绘制。帕伯特希望孩子不要机械地记忆事实,强调创造性的探索。他说:“人们总喜欢讲学习,但是,你可以看到,学校的多数课程是记忆一些数据和科学事实,却很少着眼于真正意义上的学习与思考。 ” 他用LOGO语言启发孩子们学会学习,在马萨诸塞州列克星敦,一些孩子用LOGO语言设计出了真正的程序,使LOGO成为一种热门的电脑教学语言。
1971年,瑞士联邦技术学院尼克劳斯·沃尔斯(N Wirth)教授发明了另一种简单明晰的电脑语言,这就是以帕斯卡的名字命名的PASCAL语言。PASCAL语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。它一出世就受到广泛欢迎,迅速地从欧洲传到美国。沃尔斯一生还写作了大量有关程序设计、算法和数据结构的著作,因此,他获得了1984年度“图林奖”。
1983年度的 “图林奖” 则授予了AT&T贝尔实验室的两位科学家邓尼斯·里奇 (DRitchie)和他的协作者肯·汤姆森(K Thompson),以表彰他们共同发明著名的电脑语言C。C语言现在是当今软件工程师最宠爱的语言之一。
里奇最初的贡献是开发了UNIX *** 作系统软件。他说,这里有一个小故事:他们答应为贝尔实验室开发一个字处理软件,要求购买一台小型电脑PDP-11/20,从而争取到10万美元经费。可是当机器购回来后,他俩却把它用来编写UNIX系统软件。UNIX很快有了大量追随者,特别是在工程师和科学家中间引起巨大反响,推动了工作站电脑和网络的成长。1970年,作为UNIX的一项“副产品”,里奇和汤姆森合作完成了C语言的开发,这是因为研制C语言的初衷是为了用它编写UNIX。这种语言结合了汇编语言和高级语言的优点,大受程序设计师的亲睐。
1983年,贝尔实验室另一研究人员比加尼·斯楚士舒普 (BStroustrup),把C语言扩展成一种面向对象的程序设计语言C++。如今,数以百万计的程序员用它来编写各种数据处理、实时控制、系统仿真和网络通讯等软件。斯楚士舒普说:“过去所有的编程语言对网络编程实在太慢,所以我开发C++,以便快速实现自己的想法,也容易写出更好的软件。”1995年,《BYTE》杂志将他列入“计算机工业20个最有影响力的人”的行列。
就是说你的sec在程序中有时是用非阻塞赋值,有时是用阻塞赋值,这样是不允许的。
sec[3:0]<=4'b0000;
sec[7:4]=sec[7:4]+4'b0001;
LIBRARY IEEE;
USE IEEESTD_LOGIC_1164ALL;
USE IEEESTD_LOGIC_UNSIGNEDALL;
ENTITY count IS
PORT(clk : IN STD_LOGIC;
cl_r : IN STD_LOGIC;
add : IN STD_LOGIC;
c : OUT STD_LOGIC;
ssec : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
gsec : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);
END count;
architecture art of count is
signal secg,secs: std_logic_vector(3 downto 0);--secg,是个位,secs是十位。
signal co: std_logic;
begin
process(clk,cl_r,add) is
begin
if cl_r='0' then
secg<="0000";
secs<="0000";
co<='0';
elsif clk='1'and clk'event then
if(add='1')then
secg<= secg+1;
else
if secg="1001" and secs="0101" then
secg<="0000";
secs<="0000";
co<='1';
elsif secg="1001" then
secs<=secs+1;
secg<="0000";
co<='0';
elsif secg<"1001" then
secg<=secg+1;
end if;
end if;
end if;
c<=co;
ssec<=secs;
gsec<=secg;
end process;
end architecture;
不能同时为secg设置两个触发条件
以上就是关于比汇编还早的程序语言是什么全部的内容,包括:比汇编还早的程序语言是什么、Verilog HDL错误Error (10110)、VHDL求解,一段计数程序。小弟不是伸手党,但实在没辙了。先谢过大神了。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)