计算机编程语言历史_早期编程语言的历史

编程知识 更新时间:2023-05-01 21:15:23

计算机编程语言历史

From Babbage to Babel and Beyond is an article written by Linda Weiser Friedman. This text is a summary of her article that reviews the history of computer programming languages. She describes four ‘generations’ of software starting with machine code through to different languages, paradigms and environments.

从巴贝奇(Babbage)到《通天塔别》(Babel and Beyond),都是琳达·维泽·弗里德曼(Linda Weiser Friedman)撰写的文章。 本文是她的文章的摘要,该文章回顾了计算机编程语言的历史。 她描述了软件的四个“世代” ,从机器代码到不同的语言,范例和环境。

According to Friedman in the 90’s (the time of writing) some of the oldest programming languages were the most popular ones. She mentions FORTRAN and COBOL in particular. She also argues that:

根据弗里德曼(Friedman)的说法,在90年代(撰写本文时),一些最古老的编程语言是最受欢迎的编程语言。 她特别提到了FORTRAN和COBOL。 她还认为:

“To study high-level programming languages by examining only the state of such languages as they exist today would be incomplete.”

“仅通过检查当今语言的状态来研究高级编程语言是不完整的。”

She asks the question.

她问这个问题。

  • Why did high-level languages evolve?

    为什么高级语言会发展?
  • Why are we not still programming in machine code?

    为什么我们还不使用机器代码编程?

Early programming languages have a lot of influence on later ones. Many programming languages have similar constructs.

早期的编程语言对后来的语言有很大的影响。 许多编程语言具有类似的构造。

Perhaps it is important to examine previous languages.

检查以前的语言也许很重要。

She refers to a series of previous studies. Amongst them Knuth who has studied mathematical and numerical algorithms from antiquity to the modern era. From describing ‘static functional relationships’ ( such as equations in mathematics) to notations for a dynamic process (algorithms).

她提到了一系列先前的研究。 其中包括研究古代和现代数学和数值算法的Knuth。 从描述“静态函数关系”(例如数学方程式)到动态过程的符号(算法)。

“Often, in order to denote an algorithm as an input-output transformation, one would simply express it as y=f(x), where x is the input variable, y is the output variable, and f is the abstract (or “black box”) model, the (possibly numerical) algorithm.”

“通常,为了将一种算法表示为一种输入-输出转换,可以将其简单地表示为y = f(x),其中x是输入变量,y是输出变量,f是抽象变量(或“黑盒”)模型,(可能是数字算法)。”

She claims that Algorithms have been ‘wordy’ and ‘imprecise’ before entering an examination of early computing hardware and software.

她声称算法在进入对早期计算硬件和软件的检查之前是“冗长的”和“不精确的”。

分析引擎 (The Analytics Engine)

The earliest known computer is acknowledged to be Charles Babbage’s design for an Analytic Engine in 1834. It was designed to provide changeable sequence of numerical operations and internal storage of data. It could not be built in his lifetime, but still his collaborator Lady Augusta Ada, Countess of Lovelace(and daughter of the poet Lord Byron), coded programs for it.

最早的已知计算机是1834年Charles Babbage为解析引擎设计的。它的设计目的是提供可变的数值运算顺序和内部数据存储。 它无法在他的一生中建造,但他的合作者Lovelace的伯爵夫人(也是诗人拜伦勋爵的女儿)的奥古斯塔·阿达夫人仍为其编写了程序。

Machine-code operations on Babbage’s machine were of the form:

巴贝奇机器上的机器代码操作的形式为:

  • V~ × V2= V3, with operations(e.g. the multiply operation)and variable.

    V〜×V2 = V3,具有运算(例如乘法运算)和变量。
  • It used punchcards (Jacquards).

    它使用了打Kong卡(提花)。
  • Cards were fed into a machine and worked on internal data.

    卡被送入机器并处理内部数据。
  • Conditioned inside to accommodate conditional ‘jumps’ (done by physically jumping over cards).

    在内部进行调节以适应有条件的“跳跃”(通过物理跳过卡片来完成)。

Lady Lovelace thinking about the repetitive sequences of operations is therefore credited to have innovated the concept of a loop or repetition construct.

因此,洛夫莱斯夫人(Lady Lovelace)考虑到重复的操作序列,就可以说是创新了循环或重复结构的概念。

Babbage can be credited as the first computer architect, and Lovelace as the first computer programmer.

Babbage可以被认为是第一位计算机架构师,而Lovelace可以被认为是第一位计算机程序员。

EDVAC (EDVAC)

It was not before 1945 that stored-program computer was described and implemented. This occurred with the University of Pennsylvania of John von Neumann's: "First Draft of a Report on the EDVAC".

直到1945年,才描述并实现了存储程序计算机。 宾夕法尼亚大学约翰·冯·诺伊曼(John von Neumann)撰写的《 EDVAC报告初稿》就是这样。

The EDVAC (Electronic Discrete Variable Arithmetic Computer) describes a processor coupled with primary storage.

EDVAC(电子离散变量算术计算机)描述了与主存储器耦合的处理器。

This configuration has become known as the von Neumann architecture:

此配置已称为von Neumann体系结构:

“…describes a configuration in which the processor is tightly coupled to primary storage, primary storage is large enough to store vast amounts of data along with the program code and operations are executed sequentially without the parallelism that was needed on earlier machines to counteract their extremely limited storage capabilities.”

“…描述了一种配置,其中处理器与主存储器紧密耦合,主存储器足够大,可以存储大量数据以及程序代码,并且操作是按顺序执行的,而没有早期机器所需的并行度来抵消它们的极端运行有限的存储能力。”

硬件发展 (Developments in Hardware)

Friedman (1992) constructed a frame to help gain an overview of the development of hardware. This looks like the following:

Friedman(1992)构建了一个框架,以帮助获得对硬件开发的概述。 如下所示:

She describes this as a historical overview of computer machinery from early experimental projects to Japan’s Fifth Generation Project.

她将其描述为从早期实验项目到日本第五代项目的计算机机械的历史​​概述。

The first electronic computer for commercial use on the list is the Remington Rand’s UNIVAC from 1951. The first was purchased by the U.S. Department of the Census. This was based on vacuum tubes.

清单中第一台用于商业用途的电子计算机是雷明顿·兰德(Remington Rand)于1951年推出的UNIVAC。第一台由美国人口普查局购买。 这是基于真空管。

The later computers were characterised by new and different technology:

后来的计算机以新技术和不同技术为特征:

  1. Transistors.

    晶体管。
  2. Integrated circuits.

    集成电路。
  3. Large-scale integration.

    大规模整合。

Apparently in 1951 with the installation of the UNIVAC it was predicted that 12 computers would be in the U.S. by 1975. They were quite wrong. By 1975 there were 155,000 computers in use. By the end of 1989 this figure was up to 54 million.

显然在1951年安装UNIVAC时,据预测到1975年美国将有12台计算机。这是完全错误的。 到1975年,已使用了155,000台计算机。 到1989年底,这一数字已高达5400万。

Friedman goes on to described software generations as a ladder:

Friedman继续将软件世代描述为阶梯:

Model by Friedman.
弗里德曼(Friedman)的模型。

第一代软件-机器语言编程 (First software generation — machine language programming)

Friedman discusses software in four generations. According to her it relates to a sort of rung in the ‘ladder’ between human and computer user.

Friedman讨论了四代软件。 根据她的说法,它涉及人与计算机用户之间“阶梯”中的一种梯级。

“The first generation of computer software is the era of machine language programming.”

“第一代计算机软件是机器语言编程的时代。”

During the 1940’s and the early 1950’s all coding was done in machine language. That means the computer’s own internal (binary-based) instruction set.

在1940年代和1950年代初期,所有编码都是用机器语言完成的。 这意味着计算机自己的内部(基于二进制的)指令集。

Machine coding or ‘hand coding’ remained popular long after this. Every machine had its own built in code.

在此之后很长时间,机器编码或“手工编码”仍然很流行。 每台机器都有自己的内置代码。

Every task was coded ‘from scratch’ with little opportunity for generalising.

每个任务都是从头开始编码的,几乎没有机会推广。

“The word wasn’t programming then, but coding, and programmers were coders.”

“那时这个词不是编程,而是编程,而程序员是编码员。”

According to Friedman the word programmer originated in England, it crossed the Atlantic over to the US in the 1950’s and by then it was more ‘prestigious’ to be a programmer than a coder.

根据弗里德曼的说法,程序员一词起源于英国,1950年代横跨大西洋到达美国,到那时,成为一名程序员比一名编码员更具“声望”。

In form of formal communication between members of the community there was not much.

以社区成员之间的正式沟通形式没有多少。

However, The Association for Computing Machinery (ACM) was formed in 1947 and journals began publishing a few years later.

但是,计算机协会(ACM)成立于1947年,几年后开始出版期刊。

Little thought was given to ownership because it was hard to attribute to a single source.

几乎没有考虑所有权,因为很难归因于单一来源。

Friedman says:

弗里德曼说:

“In 1947, an event occurred which is of special interest to programmers and students of computing. Grace Murray Hopper, in investigating why the Mark I1 computer was not working properly, discovered a small dead moth in the machine and removed it with a tweezer. The moth went into her logbook along with a note recording the incident for posterity. From then on, computing errors were called “bugs” and the process of finding and removing them known as “debugging”.”

“ 1947年,发生了一个事件,计算机程序员和学生特别感兴趣。 格雷斯·默里·霍珀(Grace Murray Hopper)在调查为何Mark I1计算机无法正常工作的过程中,在机器中发现了一个小死飞蛾,并用镊子将其取出。 蛾子连同记录下来的事件记录一起进入了她的日志。 从那时起,计算错误被称为“错误”,发现和删除它们的过程称为“调试”。

As a side note, although the author claims this there seems to be a few ‘bugs’ or errors with this statement.

顺便提一句,尽管作者声称这句话似乎有一些“错误”或错误 。

Howard Aiken suggested a ‘coding machine’ for the Mark III. By pressing a button machine code would be punched on a paper tape. In this way a human coder would not have to bother memorising many complicated sequences of binary code.

霍华德·艾肯(Howard Aiken )为Mark III建议使用“编码机” 。 按下按钮,机器代码将被打在纸带上。 这样,人类编码人员将不必费心记住许多复杂的二进制代码序列。

Friedman describes this as a spark towards the second generation of software.

Friedman将其描述为第二代软件的火花。

第二代软件-预编译器时代 (Second software generation — the pre-compiler era)

The second generation coding aids such as for machine language coding specialists.

第二代编码辅助工具,例如机器语言编码专家。

This included different automations and assemblers. A time ‘marked by many firsts’.

这包括不同的自动化和组装程序。 “有许多首创”的时间。

Friedman asks us to consider the programming or ‘coding’ culture at the time in light of the innovations that came:

弗里德曼(Friedman)要求我们根据随之而来的创新来考虑当时的编程或“编码”文化:

“we have to bear in mind, firstly, that the mindset of the coding establishment was such that anything other than hand-coding was considered to be inferior and, secondly, that those hand-coded machine language programs were actually very complex and intricate and did as much with less storage as our sophisticated programs do today.”

“我们必须牢记,首先,编码机构的思维方式是如此,以至于除手工编码之外的任何其他事物都被认为是次等的;其次,那些手工编码的机器语言程序实际上非常复杂,错综复杂,像我们今天的复杂程序一样,用更少的存储空间完成了很多工作。”

She also says that the scepticism was warranted since these systems turned out programs that were less efficient and more costly than the equivalent hand-coded versions produced by clever, inventive human coders.

她还说,这种怀疑是有根据的,因为这些系统所产生的程序比聪明的,有创造力的人类编码器所产生的等效的手动编码版本效率低,成本高。

So, at this time programmers did not always program ‘from scratch’. Many would manually copy sections of code.

因此,此时程序员并不总是从头开始编程。 许多人会手动复制部分代码。

Copying was fraught with ‘transcription errors’.

复制充满了“转录错误”。

In 1949 John Mauchly proposed ‘Short-Order Code’ or ‘Short Code’ for the BINAC (BINary Automatic Computer). The computer was built by John Mauchly and J. Presper Eckert, it was later bought out by Remington-Rand.

1949年,John Mauchly为BINAC(二进制自动计算机)提出了“短代码”或“ 短代码 ”。 该计算机由John Mauchly和J. Presper Eckert制造,后来被Remington-Rand收购。

Short Code: was a set of interpretive subroutines stored in memory. Short Code executed about fifty times slower than the equivalent hand-coded program.

短代码 :是存储在内存中的一组解释性子例程。 短代码的执行速度比等效的手工编码程序慢大约五十倍

The years 1950–1951 saw an emergence of a host of artificial machine languages or ‘pseudo codes’.

1950年至1951年间,出现了许多人造机器语言或“伪代码”。

“In the early 1950’s Betty Holbertson’s Sort-Merge Generator was a first attempt towards using a computer to write programs and inspired a whole family of other program generators.”

“在1950年代初期,贝蒂·霍尔伯森(Betty Holbertson)的排序合并生成器是尝试使用计算机编写程序并激发了其他整个程序生成器家族的首次尝试。”

In 1951 the first textbook for programming came over from England. It was called “The Preparation of Programs for a Digital Computer,” authored by Wilkes, Wheeler and Gill.

1951年,第一本编程书籍从英格兰传来。 它由Wilkes,Wheeler和Gill撰写,被称为“数字计算机程序的准备”。

It discussed ‘assembly routine’, referring to: “…a piece of code which would combine a set of subroutines and allocate storage as blocks of relocatable addressed called ‘floating addresses’.”

它讨论了“汇编例程”,指的是: “……一段代码,它将组合一组子例程并将存储分配为可重定位寻址的块,称为”浮动地址”。”

In 1951, Grace Murray Hopper working on Remington-Rand’s UNIVAC I came up with what she called a ‘compiling routine’, as the act of translating ‘pseudo-code’ into a complete set of machine language instructions.

1951年,格雷斯·默里·霍珀(Grace Murray Hopper)在雷明顿-兰德(Rimington-Rand)的UNIVAC I上工作,提出了她所谓的“ 编译例程 ”,作为将“伪代码”翻译成一整套机器语言指令的动作。

In 1952, Millie Coss came out with the ‘Editing Generator’ taking arithmetic operations and printing an output readable by managers and other humans.

1952年,米莉·科斯(Millie Coss)推出了“ 编辑生成器 ”,可以进行算术运算并打印出可供管理人员和其他人读取的输出。

Friedman described the 1952 development of an AUTOCODE system by Alick E. Glennie as a link to the ‘third generation’ of software. It was a primitive, highly machine-dependent algebraic compiler that translated algebraic statements into the machine language of the Manchester Mark I.

Friedman将Alick E. Glennie在1952年开发的AUTOCODE系统描述为与“第三代”软件的链接。 它是一个原始的,高度依赖于机器的代数编译器 ,将代数语句转换为曼彻斯特马克一世的机器语言。

第三代软件-程序语言 (Third software generation — procedural languages)

In 1945, a theoretical programming language was developed in Fed. Rep. Germany by Konrad Zuse, called Plankalkul (programcalculus), although this went unnoticed until about 1972.

1945年,美联储开发了一种理论编程语言。 Konrad Zuse的德国共和国称为Plankalkul(程序演算),尽管直到1972年才被人们注意到。

In Italy Corrado Bohm’s doctoral dissertation from 1951 describes a system that defines every statement as a special case of the assigned statement, for example S would be equivalent to ‘set the program counter to the value of the variable S’.

在意大利,Corrado Bohm于1951年发表的博士论文描述了一种系统,该系统将每个语句定义为所分配语句的特殊情况,例如S相当于“将程序计数器设置为变量S的值”。

The first algebraic compiler is considered to be for MIT’s WHIRLWIND computer designed by Jay Forrester and Ken Olsen. It was the first 16-bit minicomputer capable of parallel processing and real-time computing. It was demonstrated in spring 1953 and up and running January 1954.

第一个代数编译器被认为是由Jay Forrester和Ken Olsen设计的MIT的WHIRLWIND计算机。 它是第一台能够并行处理和实时计算的16位微型计算机。 它在1953年Spring演示,并于1954年1月投入运行。

In 1955, Grace Murray Hoppe’s programming team began to develop an algebraic programming language that users some English keywords.

1955年,格雷斯·默里·霍普(Grace Murray Hoppe)的编程团队开始开发一种使用一些英语关键字的代数编程语言。

In 1957, it was released as MATH-MATIC, and it executed inefficiently. In 1957 IBM finally delivered the compiler for FORTRAN. It was increasingly accepted in the computing community.

1957年,它以MATH-MATIC的形式发行,执行效率低下。 1957年,IBM最终交付了FORTRAN的编译器。 它在计算社区中越来越被接受。

In 1958, FLOW-MATIC was released and became an important factor in the subsequent design of COBOL.

1958年,FLOW-MATIC发布,并成为后续C​​OBOL设计中的重要因素。

FORTRAN(公式翻译系统) (FORTRAN (FORmula TRANslating System))

In 1954, John Backus led an IBM team of researcher (later named the Programming Research Group) to design and develop automatic translators of mathematical formulas into IBM 704 machine code. They would accept nothing less than something as efficient as their hand-coded counterparts. Their overriding concern was efficiency, as according to Friedman it may be more likely to be accepted by the coding community. Language design aspect was handled quickly. Described by Friedman: “…in the manner of a chore that had to be completed before the ‘real’ work (the design of the compiler) could be done.”

1954年,约翰·巴科斯(John Backus)领导了一个IBM研究人员小组(后称“编程研究小组”)来设计和开发自动将数学公式转换为IBM 704机器代码的工具。 他们所接受的无非是与手工编码的同行一样高效的东西。 他们最关心的是效率,因为根据Friedman的说法,编码社区更可能接受它。 语言设计方面很快得到处理。 弗里德曼(Friedman)表示: “ ...在完成“实际”工作(编译器的设计)之前必须完成一件繁琐的工作。”

FORmula TRANslating System,or FORTRAN was released in 1954 with a large part of the document devoted to the justification of the system, including an optimistic expectation that FORTRAN would eliminate coding and debugging.

公式翻译系统或FORTRAN 该版本于1954年发布,其中很大一部分文件专门讨论了系统的合理性,其中包括乐观地期望FORTRAN将消除编码和调试。

In 1958, FORTRAN compilers were released for the IBM 709 and the 650; in 1960 for the 1620 and 7070. The versions were not necessarily identical and a program written on one computer did not necessarily produce the same result on another.

1958年,为IBM 709和650发布了FORTRAN编译器。 1960年是1620和7070的版本。版本不一定相同,在一台计算机上编写的程序不一定会在另一台计算机上产生相同的结果。

In 1961, FORTRAN compilers were made available for other computers (UNIVAC, Remington-Rand LARC and ALTAC).

1961年,FORTRAN编译器可用于其他计算机(UNIVAC,Remington-Rand LARC和ALTAC)。

In 1964 there were more than 40 different FORTRAN compilers on the market. It must be said that it was not machine-independent language, and computer differently on different computers.

1964年,市场上有40多种不同的FORTRAN编译器。 必须说这不是机器无关的语言,并且在不同的计算机上计算机也不同。

In 1958 FORTRAN II was released, followed by FORTRAN III and FORTRAN IV in 1962. FORTRAN IV was the standard for the language until FORTRAN 77 was released in 1978.

1958年发布了FORTRAN II,随后于1962年发布了FORTRAN III和FORTRAN IV。直到1978年FORTRAN 77发行时,FORTRAN IV才是该语言的标准。

LISP(LISt处理器) (LISP (LISt Processor))

During the years 1956–1958 an interactive, applicative language was designed at Darthmouth by John McCarthy.

在1956年至1958年间,约翰·麦卡锡(John McCarthy)在达特茅斯(Darthmouth)设计了一种交互式的,可应用的语言。

In 1959, this was later implemented at MIT with a reference manual published in 1960.

1959年,该方法随后在麻省理工学院实施,并于1960年出版了参考手册。

LISP is based on lambda-calculus, and unlike other languages it was designed for symbolic formula manipulation. Friedman argues it became the ‘lingua franca’ (medium of communication) for the artificial intelligence community.

LISP基于lambda微积分,与其他语言不同,它是为符号公式操纵而设计的。 弗里德曼认为,它已成为人工智能界的“通用语言”。

She lists some innovative features as the following:

她列出了一些创新功能,如下所示:

  • The function as the basic program unit.

    该功能作为基本程序单元。
  • The list as the basic data structure.

    该列表作为基本数据结构。
  • Dynamic data structures.

    动态数据结构。
  • Facilities for ‘garbage collections’.

    “垃圾收集”设施。
  • Use of symbolic expressions as opposed to numbers.

    使用符号表达式而不是数字。
  • Recursion.

    递归。
  • Conditional expression as control structures.

    条件表达式作为控制结构。
  • The ‘eval’ function for interactive evaluation of LISP statements.

    用于交互式评估LISP语句的“评估”功能。

ALGOL(算法语言) (ALGOL (ALGOrithmic -Language))

In 1958, a committee held meetings in Zurich to design a universal high-level programming language. It featured European representatives from GAMM (German association for applied mathematics and mechanics), and the Association for Computing Machinery. One of the members of the committee was John Backus, who had led the FORTRAN development group.

1958年,一个委员会在苏黎世举行了会议,以设计一种通用的高级编程语言。 它吸引了来自GAMM(德国应用数学和力学协会)和计算机协会的欧洲代表。 该委员会的成员之一是约翰·巴科斯(John Backus),他曾领导FORTRAN开发小组。

One of the goals was to facilitate communication and exchange in the international computing community alongside the practical goal to bring a compiler to Europe (they were still hand-coding). One of the reasons a new language was desired was that FORTRAN was a proprietary IBM product. Adopting FORTRAN would therefore somewhat mean buying only IBM machines, and there was a wish for IBM not to dominate in Europe.

目标之一是促进国际计算社区中的交流与交流,以及将编译器带到欧洲的实际目标(他们仍然是手工编码)。 要求使用新语言的原因之一是FORTRAN是IBM的专有产品。 因此,采用FORTRAN可能意味着仅购买IBM机器,并且希望IBM不在欧洲占据主导地位。

The language was first named IAL, for International Algebraic Language ,and eventually renamed ALGOL (ALGOrithmic -Language). The first version was known as ALGOL 58.

该语言最初是用于国际代数语言的IAL,后来更名为ALGOL(ALGOrithmic -Language)。 第一个版本称为ALGOL 58。

The committee met again in Paris in 1960 to improve the language and eliminate weaknesses.

该委员会于1960年在巴黎再次举行会议,以改进语言并消除弱点。

“The influence of ALGOL60 on programming language design, and on the development of computer science in general, has been nothing less than profound.”

“ ALGOL60对编程语言设计以及整个计算机科学的发展产生了深远的影响。”

Friedman lists a few innovative features:

Friedman列出了一些创新功能:

  • BNF (Backus Normal Form), metalanguage for programming language definition.

    BNF(Backus范式),用于编程语言定义的元语言。
  • The programming language as an object of study rather than just a means towards an end.

    编程语言是学习的对象,而不仅仅是达到目的的手段。
  • Used as a publication language for algorithms.

    用作算法的发布语言。
  • Block structure and localised data environments.

    块结构和本地化数据环境。
  • Nesting of program units.

    程序单元的嵌套。
  • Free-format program code.

    自由格式的程序代码。
  • Explicit type declerations.

    显式类型清除。
  • Dynamic memory allocation.

    动态内存分配。
  • Parameter passing by value and name.

    通过值和名称传递的参数。
  • If /then/else and begin/end to delimit compound statements.

    如果/ then / else并开始/结束以分隔复合语句。
  • Scoping rules.

    范围规则。
  • Declaration of local variables.

    局部变量的声明。
  • Parameters passed by name, value or reference.

    通过名称,值或引用传递的参数。

COBOL(面向商务的语言) (COBOL (COmmonBusiness-Oriented-Language)

In 1959, another group met under the oversight of the Department of the Defense in the United States to discuss developing a ‘common’ programming language.

1959年,另一个小组在美国国防部的监督下举行会议,讨论开发一种“通用”编程语言。

“This group, composed of about 40 members, represented computer manufacturers and users from industry, universities, and government and became known as the CODASYL Committee(COOnferenceon DAta SYstemsLanguages).”

“该小组由大约40名成员组成,代表计算机制造商和行业,大学和政府的用户,并因此而成为CODASYL委员会(COOnferenceon DAta SYstemsLanguages)。”

It was in the interest of both computer manufacturers and the government to design a language that could work on different machines.

设计一种可以在不同机器上运行的语言符合计算机制造商和政府的利益。

In April 1960 a language called COBOL was made.

1960年4月,开发了一种称为COBOL的语言。

Unlike FORTRAN the language started out relatively ‘machine-independent’.

与FORTRAN不同,该语言开始时相对于“机器无关”。

For many first and second generation programming was poorly understood by most and considered as Friedman says: a ‘black art’.

对于许多第一代和第二代编程,大多数人都不太了解,并被弗里德曼说成是“黑手艺”。

Important innovations in COBOL according to Friedman are the following:

Friedman认为,COBOL的重要创新如下:

  • The record data structure.

    记录数据结构。
  • File descriptions and manipulation facilities.

    文件描述和操作工具。
  • Machine independence of data and program descriptions.

    机器与数据和程序描述无关。
  • Equal emphasis on data descriptions in the Data Divisions and the operations in the Procedure Division.

    同时强调数据部门的数据描述和程序部门的操作。
  • Influence of English in the use of verbs, clauses, sentences, paragraphs, sections, and divisions.

    英语在动词,从句,句子,段落,部分和格的使用中的影响。
  • A relatively natural language styles, including noise words for readability.

    一种相对自然的语言样式,包括用于可读性的干扰词。
  • The overall effort towards a language that would produce self-documenting program code.

    对一种会产生自文档程序代码的语言的总体努力。

They started an important trend toward data-oriented languages. Friedman argues this has culminated in the proliferation of database management systems, query languages, and database-centred high-productivity programming tools and environments.

他们开始了面向数据的语言的重要趋势。 弗里德曼认为,这最终导致了数据库管理系统,查询语言以及以数据库为中心的高生产率编程工具和环境的激增。

There was a widespread availability of COBOL compilers partly due to government involvement:

COBOL编译器的广泛使用部分是由于政府的参与:

“…the Department of Defense sent a strongly worded letter to all computer manufacturers advising them that if they wanted to continue to sell computers to the Department of Defense(the largest computer contracter and endower of research grants) they had better put a COBOL compiler on it.”

“……国防部给所有计算机制造商发送了一封措辞强烈的信,通知他们,如果他们想继续向国防部出售计算机(最大的计算机承包商和研究经费的支持者),最好将COBOL编译器放在它。”

Friedman comments that FORTRAN, COBOL and LISP were among the most used programming languages at the time of writing (approx. 1990).

弗里德曼评论说,在撰写本文时(大约1990年),FORTRAN,COBOL和LISP是最常用的编程语言。

巴别塔→1960年代和1970年代 (Babel → 1960’s and 1970's)

“The decades of the 1960s and the 1970s saw a truly amazing proliferation of programming languages.It was this hubub of activity that Jean Sammetin 1969 likened to the Biblical Tower of Babel.”

“ 1960年代和1970年代的数十年间,编程语言的确令人惊奇地泛滥。正是这一活动的兴致,让·萨米特(Jean Sammetin)1969年将其比作《圣经》的巴别塔。”

APL (A Programming Language). Defined and introduced to the public in 1962 through a book by Kenneth Iverson at Harvard, who took part in designing this. It required a special keyboard and did not become widely used.

APL(一种编程语言) 。 1962年,由哈佛大学的肯尼斯·艾弗森(Kenneth Iverson)撰写并参与设计的一本书定义并向公众介绍。 它需要特殊的键盘,并未得到广泛使用。

SNOBOL (StriNg Oriented symBOlic Language). First implemented in 1963, it was designed by researchers at Bell Laboratories as a string manipulation language. The implementation was actually named SEXI (String EXpression Interpreter), but it was apparently considered unacceptable. The name of the language was a humorous jab at acronyms: SNOBOL (StriNg OrientedsymBOlicLanguag). SNOBOL4 was released in 1968 designed for third generation computer hardware, it treats patterns as data objects. The unique feature was its facility for string and pattern matching.

SNOBOL(面向StriNg的符号语言) 。 它于1963年首次实现,由贝尔实验室的研究人员将其设计为字符串处理语言。 该实现实际上被命名为SEXI(字符串表达式解释器),但显然被认为是不可接受的。 该语言的名称是一个幽默的缩写,缩写为SNOBOL(StriNg OrientedsymBOlicLanguag)。 SNOBOL4于1968年发布,专为第三代计算机硬件而设计,它将模式视为数据对象。 独特之处在于它可用于字符串和模式匹配。

BASIC (Beginner's All-purpose Symbolic Instructional Code). Code ran in 1964, and the language design was intended to introduce students in non-scientific disciplines to computing. Simplicity was chosen over compiler efficiency, and clear error messages were provided.

BASIC(初学者的通用符号教学代码) 。 代码运行于1964年,语言设计旨在向非科学学科的学生介绍计算机。 选择简单性而不是编译器效率,并提供了明确的错误消息。

PL/1 (Programming Language/one). Released 1966, intended as the ‘language to end all languages’, but not as popular as IBM had hoped. Compilers were inefficient and unreliable. It has been criticised as a language to big, as it tried to include every conceivable element of language design.

PL / 1(编程语言/一种) 。 1966年发布,旨在作为“终止所有语言的语言”,但没有IBM希望的那样流行。 编译器效率低下且不可靠。 由于它试图包含语言设计的所有可能元素,因此已被广泛批评为一种语言。

Logo. Developed over the years 1966–1968. Designed specifically for mathematics education, used experimentally in classrooms. Logo is very similar to LISP. It includes ‘turtle graphics’, for teaching kids geometric principles.

徽标 。 1966年至1968年间开发。 专为数学教育而设计,可在课堂上进行实验性使用。 徽标与LISP非常相似。 它包括“海龟图形”,用于教孩子们几何原理。

FORTH (fourth-generation language). Charles H. Moore wanted a language efficient enough for scientific and engineering applications, yet allow for faster programming using fewer lines of code. Two (apparently) conflicting design goals it seems. According to Friedman it cannot be considered a fourth generation language today.

FORTH (第四代语言)。 查尔斯·H·摩尔(Charles H. Moore)希望这种语言对于科学和工程应用程序足够有效,但允许使用更少的代码行来加快编程速度。 看起来两个(显然)矛盾的设计目标。 根据Friedman的说法,今天不能将其视为第四代语言。

SIMULA. Designed in 1962 by Kristen Nygaard and Ole-Johan Dahl at the Norwegian Computing Center under contract with Univac. Motivated by a wish to simulate applications — a technique of operations research successfully used in a number of diverse areas. This language introduced the ‘class concept’, an important abstraction for object-oriented programming.

SIMULA 。 由Kristen Nygaard和Ole-Johan Dahl与Univac签订合同,于1962年在挪威计算中心设计。 出于希望模拟应用程序的动机-一种运筹学技术已成功应用于许多不同领域。 该语言引入了“类概念”,这是面向对象编程的重要抽象。

Pascal (named after 17th century French philosopher and mathematician Blaise Pascal). The revision of ALGOL68 (from ALGOL60) was not popular, as it was needlessly big and awkward. One of the ‘dissenters’ Niklaus Wirth designed Pascal, which was first implemented in 1970. Friedman argues that Pascal designed for use in education stood out: “…in opposition to a trend”. A trend of complicating a language with features so no user could expect to know all of them.

Pascal(以17世纪法国哲学家和数学家Blaise Pascal的名字命名) 。 ALGOL68(来自ALGOL60)的修订版不受欢迎,因为它不必要的大而笨拙。 尼克劳斯·沃思(Nicklaus Wirth)设计的“异议者”之一是帕斯卡(Pascal),该工具于1970年首次实施。弗里德曼(Friedman)辩称,为教育而设计的帕斯卡(Pascal)脱颖而出:“……与趋势相反”。 一种使功能变得复杂的语言的趋势,因此没有用户可以期望了解所有功能。

C. Kenneth Thompson and Dennis Ritchie developed C for coding the routines in a UNIX operating system. C was an extension of B (also designed by Thompson) that drew on an earlier language BCPL. C created the notion of a portable operating system. Friedman argues that a concise syntax makes C programs difficult to read, understand, debug and maintain.

C. Kenneth Thompson和Dennis Ritchie开发了C语言,用于在UNIX操作系统中对例程进行编码。 C是对B(也由Thompson设计)的扩展,它借鉴了较早的语言BCPL。 C创建了可移植操作系统的概念。 Friedman认为,简洁的语法会使C程序难以阅读,理解,调试和维护。

Modula-2 (MODUlar LAnguage/two). Descendant of Pascal, intended for large systems. The module facilitates information sharing, encapsulating code in clearly delineated pieces.

模组2 (模组语言/两个)。 Pascal的后代,适用于大型系统。 该模块有助于信息共享,将代码封装在清晰划定的部分中。

Ada. Proposed in 1980 and standardised in 1983 it had similar intents as PL/1 (language to end all languages) and similar success.

艾达 它于1980年提出并于1983年标准化,其意图与PL / 1(终止所有语言的语言)相似,并且取得了类似的成功。

After the announcement of FORTRAN with the report in 1954 there were a great deal of languages that attempted to: “…tame the electronic computer for high-level use by humans in every application area.”

在1954年发布FORTRAN报告后,出现了许多语言试图: “……使电子计算机成为人类在每个应用领域的高级使用方式。”

Friedman has been so kind as to draw a model of some of the influences between the different languages:

弗里德曼(Friedman)很善良,可以为不同语言之间的一些影响建立模型:

Model by Friedman
弗里德曼模型

第四代软件-声明性语言 (Fourth software generation — declarative languages)

“The von Neumann-typeof computer architecture, while serving as catalyst for a generation of programming languages may also, it appears, be guilty in large part for the degree of stagnation we have seen in the conceptual development of programming language technology.”

“冯·诺依曼型计算机体系结构虽然可以作为一代编程语言的催化剂,但在很大程度上,我们在编程语言技术的概念发展中所遇到的停滞程度似乎也是有罪的。”

What Friedman refers to is the stored program in memory locations with a single counter in a flow of sequence instructions. Programming languages relying on this prior paradigm (procedural) architecture tend to be:

Friedman所指的是在顺序指令流中带有单个计数器的存储位置中的存储程序。 依赖此先前范例(过程)体系结构的编程语言通常是:

  1. Statement-oriented (assuming sequential execution of a limited number of operations).

    面向语句(假定顺序执行有限数量的操作)。
  2. Composed of vast numbers of lines of code. Debugging is arduous and lengthy.

    由大量的代码行组成。 调试工作艰巨而漫长。
  3. Maintenance is time-consuming and costly.

    维护既费时又昂贵。

Friedman argues that this next paradigm is declerative:

弗里德曼(Friedman)认为,下一个范式是容忍的:

“A fourth generation language is declarative, i.e. its instructions to the computer concentrate more on what is to be done rather than on describing in detail how to do it.”

“第四代语言是说明性的,即它对计算机的指令更多地集中在要做什么,而不是在详细描述如何做。”

Fourth generation seeks to optimise human labour over computer time.

第四代寻求在计算机时间内优化人工。

Frequently aimed at a non-technical user in a particular application area.

通常针对特定应用领域中的非技术用户。

Some of the trends according to Friedman are:

根据Friedman的一些趋势是:

  • Declarative language.

    声明性语言。
  • Packaged software.

    打包软件。
  • Integrated packages.

    集成软件包。
  • User-friendly interactive environments.

    用户友好的交互式环境。
  • Query languages.

    查询语言。
  • High-productivity programming tools.

    高生产力的编程工具。
  • The integration of languages.

    语言的整合。
  • Programming tools (editor, linker, translators, file handler and user interface within a single interactive system).

    编程工具(单个交互式系统中的编辑器,链接器,翻译器,文件处理程序和用户界面)。

She mentions that not all systems are non-procedural and the classification is arbitrary.

她提到并非所有系统都是非过程性的,并且分类是任意的。

In 1961, the statistical package BMD (BioMeDicalpackage) is developed at the University of California Berkeley and implemented in FORTRAN on the IBM 7090.

1961年,统计软件包BMD(BioMeDicalpackage)在加利福尼亚大学伯克利分校开发,并在FORTRAN中的IBM 7090上实现。

In 1967, Arthur S. Couch developed DATATEXT at Harvard University aimed at social scientists.

1967年,Arthur S. Couch在哈佛大学开发了针对社会科学家的DATATEXT。

PROLOG (Programming in LOGic). Implemented in 1972 in ALGOL-W for the purpose of natural-language processing. Since 1981 it became associated with Japan’s Fifth Generation Project.

PROLOG (以逻辑编程)。 1972年在ALGOL-W中实现,用于自然语言处理。 自1981年以来,它与日本的第五代计划相关。

OPS (Official Production System). A production-system or rule-based language used in the field of artificial intelligence. OPS5 released in 1977.

OPS(正式生产系统) 。 人工智能领域中使用的一种生产系统或基于规则的语言。 OPS5于1977年发布。

Smalltalk. Designed and implemented at Xerox Palo Alto Research Center (PARC) as the software component of: “Alan Kay’s legendary Dynabook, a notebook-sized personal computer for the non-technical user.” The environment was important: mouse for selecting and pointing; graphical user menus and so on. Steve Jobs used this approach with the Apple Computers Lisa and Macintosh operating system.

闲聊 。 在施乐帕洛阿尔托研究中心(PARC)上设计和实现,它是以下软件的组件:“艾伦·凯(Alan Kay)传奇的Dynabook,一种非技术用户的笔记本大小的个人计算机。” 环境很重要:鼠标用于选择和指向; 图形用户菜单等。 史蒂夫·乔布斯(Steve Jobs)在Ap​​ple Computers Lisa和Macintosh操作系统上使用了这种方法。

Query languages. Made to make databases accessible to people with minimal training, query languages were developed to be user-friendly. SQL was developed for SystemsR and several other ways to query. SQL was designed at IBM and marketed in 1979 by Oracle.

查询语言 。 查询语言旨在使人们受过最少的培训就可以访问数据库,因此开发了查询语言以使其易于使用。 SQL是为SystemsR和其他几种查询方式开发的。 SQL是在IBM设计的,并于1979年由Oracle推向市场。

Friedman argues:

弗里德曼认为:

“A fourth-generation high-productivity tool is largely non-procedural, user-friendly, and problem-oriented.”

“第四代高生产率工具主要是非过程性的,用户友好的和面向问题的。”

Further, she says that these systems have been centred around a database and include components of a database management system.

她还说,这些系统已经集中在数据库周围,并且包括数据库管理系统的组件。

Software began with humans forced to ‘think’ in code for a specific machine.

软件始于人类被迫“思考”特定机器的代码。

At the time of writing Friedman already argues that computers can ‘think’ or act to some extent like human beings.

在撰写本文时,弗里德曼已经论证了计算机可以像人类一样“思考”或采取某种行动。

Linda Weiser Friedman’s article is a fascinating read and I do of course recommend that you read it in full rather than my limited summary.

琳达·维泽·弗里德曼(Linda Weiser Friedman)的文章引人入胜,我当然建议您完整阅读而不是只限于我的摘要。

I hope you enjoyed this article!

希望您喜欢这篇文章!

This is #500daysofAI and you are reading article 467. I am writing one new article about or related to artificial intelligence every day for 500 days.

这是#500daysofAI,您正在阅读文章467。我连续500天每天都在撰写一篇有关人工智能或与人工智能有关的新文章。

翻译自: https://medium/@alexmoltzau/the-history-of-early-programming-languages-1b4067f624a1

计算机编程语言历史

更多推荐

计算机编程语言历史_早期编程语言的历史

本文发布于:2023-04-23 23:51:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/91004aeead7d4901b2261b4c6f5de22e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:编程语言   历史   计算机

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 99414文章数
  • 25916阅读数
  • 0评论数