Who invents C and C ++ language

Programming language / development of programming languages

timeline

All programming languages ​​mentioned in this article were entered on this timeline. Should you ever lose track of which language is similar to which other language or has influenced it, then you can return to this schedule. With the black lines it will tell you at any time which programming language of the listed ones came first and which one influenced them.

The beginnings of programming

In the days before computers existed, people couldn't help but do every move and every work step themselves. In order not to have to repeat repetitive tasks over and over again, machines were invented as early as the industrial revolution. These machines relieved people of a lot of work, especially in the manual sector. For example, there were also looms that could weave a simple pattern into the fabric. Joseph-Marie Jacquard was a French inventor who tried to mechanize pattern weaving technology so that it could no longer be carried out by humans. In 1804, Jacquard finally invented the first programmable loom. This loom could now also weave more complicated patterns through its programming. All the information, including the programming, that the loom needed was written on punched cards that you put in the loom.



But programming was not only progressing in the manual sector. A few years later, Ada Lovelace married William King. This supported her, encouraged her and enabled her access to knowledge in the form of libraries, which she never had before. Because women in the 19th century had no access to any form of education. Lovelace’s husband went to libraries and copied articles for them. Since Lovelace and her husband frequented the Royal Society, it was not long before they found out about Charles Babbage's plan. Babbage’s plan was to build a calculating machine that is now considered to be the forerunner of the computer. Lovelace was intrigued and translated an article about Babbage’s "Analytical Machine". Published by Babbage in 1837, this machine was a difference machine for solving polynomial functions. Then she started working on an algorithm that would have allowed this machine to calculate Bernoulli's numbers. Ada Lovelace managed to develop the algorithm for calculating Bernoulli numbers between 1842 and 1845. Although Babbage’s plans for the "Analytical Machine" failed, we have a pretty accurate picture of this machine these days. It would have been programmed many years before punch cards like the loom. The programming language on these punch cards is very similar to the assembly languages ​​used to this day. (Picture)

The first computers and their instructions

In 1946 John Mauchly and John Presper Eckert developed the first ENIAC computer. Only hardware connections were possible on the ENIAC.

The computer was programmed by closing the connections with wires. Every time the programming for the computer was to be changed, the programmer had to look at which connections were where and to change them. Only data could be entered into the memory of this computer. Only after the mathematician von Neumann had described a new architecture, no new lines had to be laid, but a program could be saved in the memory.

In 1936 Alonzo Church and Stephen Kleene developed the lambda calculus (λ-calculus). The lambda calculus is a universal abstract programming language. Everything can be expressed with the lambda calculus that can be expressed with a modern programming language. It is also the formal basis for many programming languages, such as Scheme and Lisp. In the frequently used and well-developed programming languages, it can usually also be used as a module or library.

The first high-level programming languages

Konrad Zuse developed the first high-level programming language in 1945/1946, which he called "Plankalkül". Plank calculus includes assignments, function calls, conditional statements, loops, floating point arithmetic, fields, and compound data types. Plankalkül was published in full for the first time in 1972. Plankalkül was not used in practice, but it has historical significance. Because it has had a major impact on the subsequent programming languages. The next programming language to be developed and still used today in newer versions is Fortran. Fortran stands for "FORmula TRANslator". It was designed in 1954 by John W. Backus and a team of developers and programmers. Nowadays it is an object-oriented programming language that is used in particular for numerical calculations. A language that is still widely used today is LISP. LISP is an abbreviation for "LISt Processor". LISP was founded in 1959 by John McCarthy et al. designed. It was developed at MIT (Massachusetts Institute of Technology) based on the lambda calculus. LISP influenced a number of languages ​​including Smalltalk, Python, and Haskell.

An important programming language that influenced the further course is Algol 58 or Algol 60. Algol abbreviates "ALGOrithmic Language". Algol 58 was designed in 1958 by an international committee during a series of meetings that should serve algorithms. The programming language was revised once again with the Revised Report for Algol 60. Against the trend of the times, Algol prescribed runtime checks that were only later recognized and imitated. The "Hello World" program in Algol 60:

'COMMENT' HELLO, WORLD PROGRAM IN ALGOL 60; 'BEGIN' OUTSTRING (2, '(' HELLO, WELT ')'); 'END'

In 1959 the original form of the Backus-Naur-Form (BNF) was presented. The BNF is a compact, formal metalanguage for representing context-free grammars. Almost all programming languages ​​that were developed after the BNF used them to represent their programming language. For the first time, it was possible to define areas of validity. There are many variants of the BNF. The best known variants are the extended Backus-Naur-Form (EBNF) and the enriched Backus-Naur-Form (ABNF). IBM developed PL / I in the 1960s. PL / I stands for "Programming Language One". In PL / I an attempt was made to unite the languages ​​Algol, Fortran and Cobol. PL / I was mainly used on IBM mainframes. Before PL / I, IBM had to use different languages ​​for each computer. So it was very important for IBM that PL / I was developed. But there are also versions for Windows and UNIX. The "Hello World" program in PL / I:

/ * Hello World in PL / 1 * / Hello: procedure options (main); put skip list ('Hello World!'); end Hello;

The developers of BASIC, however, had a completely different reason. BASIC stands for "Beginner's All-purpose Symbolic Instruction Code". It was designed by John C. Kemeny and Thomas E. Kurtz at Dartmouth College in 1964. It was designed to make it easier for students to get started with programming with Algol and Fortran. So it was also designed with the aim of being easy to learn.

Object orientation

Object orientation describes a view of complex systems in which a system is described by the interaction of cooperating objects. This way of thinking and the first terms were shown in Simula 67. Simula is made up of "SIMUlation" and "LAnguage". Simula was developed for simulation purposes and was first usable with a compiler in 1964. Simula also served as a model for C ++. This is the "Hello World" program in Simula:

! Hello World in Simula; BEGIN OutText ("Hello World!"); OutImage; END

The object-oriented concepts had a great influence on the further development of programming languages. Another important object-oriented programming language is Smalltalk. Smalltalk has been developed at the Xerox Palo Alto Research Center since the early 1970s but was not widely released to the public until the 1980s. Smalltalk was designed as a fully dynamic system in which objects can be created and changed interactively. Smalltalk can treat snippets of code as an object, and this helps Smalltalk use those snippets of code like any other object. Smalltalk was also the first to integrate a language into an innovative user interface that enabled real interaction. Pascal was invented in the late 1960s and early 1970s especially for educational purposes. Pascal was developed by Niklaus Wirth and Kathleen Jensen and they named the language after the French mathematician and philosopher Blaise Pascal. Pascal surpassed FORTRAN and ALGOL 60 in such a way that Pascal was universally applicable. The versions of FORTRAN and ALGOL at that time were not yet. In contrast to BASIC, which is also a programming language for training purposes, Pascal is much more precise. Pascal forces the programmer to develop in a disciplined and structured manner. Pascal was later developed further and in 1978 a new renamed version Modula-2 was released. Modula-2 and other Pascal versions continued to exist at the same time. There were many programming languages ​​in existence in the 1970s. The US Department of Defense found they were using too many programming languages ​​in-house (around 450 languages) and decided that they should only use one language for all projects. But it wasn't that easy to find a language that covered all the necessary criteria. Because many programming languages ​​were not standardized but dependent on the provider. That is why Ada was designed. Ada was named after Ada Lovelace, the woman who developed the algorithm for the Bernoulli numbers. Ada's development was supported and sponsored by the US Department of Defense. Ada’s appearance is similar to Pascal and Modula-2. It is considered the first standardized high-level language.

- Hello World in Ada with Text_IO; procedure Hello_World is begin Text_IO.Put_Line ("Hello World!"); end Hello_World;


Two languages ​​that go hand in hand are C and C ++. C ++ is the object-oriented extension of C. C was designed in 1972 for the Unix operating system. It prevailed over BASIC for general application programs. From 1979, Bjarne Strousturp at AT&T developed C ++ as an extension of C. C ++ enabled efficient and machine-oriented programming. They wanted to develop C by expanding a class concept with data encapsulation. C ++ finally appeared in 1985.

// Hello World in C ++ (pre-ISO) #include main () {cout << "Hello World!" << endl; return0;}

Programming languages ​​in today's world

Object orientation continued to establish itself as the standard and further versions of older programming languages ​​were supplemented with object orientation. It often led to problems when languages ​​that were not "built" for object orientation are extended with object-oriented extensions. At that time there was no language that offered both procedural and object-oriented programming options. Eiffel was an early attempt in that direction. Today Java is mostly used for this purpose. Java was developed between 1991 and 1992 for the US computer manufacturer Sun Microsystems. James Gosling was the main developer of Java. Java should, among other things, be a simple, object-oriented, distributed programming language that is both secure and powerful. C #, another extension of C and C ++, has goals similar to those of Java.

With the Internet in the 1990s came script languages ​​such as HTML (Hypertext Markup Language) and PHP ("Personal Home Page Tools"). HTML was first defined on March 13, 1989 by Tim Berners-Lee at Cern in Geneva. The original version of HTML was published in 1992. PHP is a scripting language that has a C-based syntax. PHP is mainly used to create dynamic websites or web applications. It was first developed and published in 1995 by Rasmus Lerdorf.

<?php// Hello World in PHPecho'Hello World!';?>

The Internet is a whole new foundation for programming and software. Aspects such as code security and portability came to the fore. However, there were no fundamental innovations in the programming languages, but more emphasis was placed on automatic garbage collection and strong or static typing. Although the object-oriented programming languages ​​have by no means lost their popularity, others have been invented and graphic notation forms such as UML (Unified Modeling Language) have been designed, which are characterized by a higher level of abstraction.

What did you learn? → quiz

The following questions have either one or more correct answers ... "

When did Jacquard learn about the first programmable loom? (! 1935) (! 1681) (1804)

What languages ​​are scripting languages? (PHP) (! Java) (! HTML)

What was the name of the computer that was programmed with hardware connections? (ENIAC) (! Von Neumann) (! Analytical Machine)

What is the name of one of the first high-level programming languages ​​that is still in use today? (! Plan calculus) (FORTRAN) (! C)

Which programming language were the punch cards similar to? (Assembly language) (! C ++) (! Ada)

Which languages ​​have been developed for educational purposes? (! C ++) (BASIC) (Pascal)

Who published the "Analytical Machine"? (! Ada Lovelace) (Charles Babbage) (! Joseph-Marie Jacquard)

What was the first object-oriented programming language? (! Algol 60) (BASIC) (Simula)

Who developed the algorithm for the Bernoulli numbers? (! Blaise Pascal) (Ada Lovelace) (! James Gosling)

swell