You are on page 1of 10

History of programming languages

The history of programming languages spans from documentation of early


mechanical computers to modern tools for software development. Early
programming languages were highly specialized, relying on mathematical notation
and similarly obscure syntax. In the 1940s, Jean Jennings Bartik, Betty Holberton,
Marlyn Wescoff, Kathleen McNulty, Ruth Teitelbaum, and Frances Spence
developed subroutines, nesting, and other fundamental programming techniques,
and invented the discipline of programming digital computers. Grace Hopper
invented one of the first linkers and popularized the idea of machine-independent
programming languages, which leads to the development of COBOL, an early
high-level programming language still in use today. Throughout the 20th century,
research in compiler theory leads to the creation of high-level programming
languages, which use a more accessible syntax to communicate instructions.
The first high-level programming language was Plankalkul, created by Konrad
Zuse between 1942 and 1945. The first high-level language to have an associated
compiler was created by Corrado Bohm in 1951, for his PhD thesis. The first
commercially available language was FORTRAN (FORmula TRANslation),
developed in 1956 (the first manual appeared in 1956, but first developed in 1954)
by a team led by John Backus at IBM.
Early history
During 1842–1849, Ada Lovelace translated the memoir of Italian mathematician
Luigi Menabrea about Charles Babbage's newest proposed machine: the Analytical
Engine; she supplemented the memoir with notes that specified in detail a method
for calculating Bernoulli numbers with the engine, recognized by some historians
as the world's first published computer program.
The first computer codes were specialized for their applications: e.g., Alonzo
Church was able to express the lambda calculus in a formulaic way and the Turing
machine was an abstraction of the operation of a tape-marking machine.
To some people, some degree of expressive power and human-readability is
required before the status of "programming language" is granted. Jacquard Looms
and Charles Babbage's Difference Engine both had simple, extremely limited
languages for describing the actions that these machines should perform.
First programming languages
In the 1940s, the first recognizably modern electrically powered computers were
created. For example, the first fully functional computer is known as Electronic
Numeric Integrator and Computer (ENIAC). With Bartik as ENIAC's first
programmer, six women were hired as its programmers: Jean Jennings Bartik,
Betty Holberton, Marlyn Wescoff, Kathleen McNulty, Ruth Teitelbaum, and
Frances Spence. They developed subroutines, nesting, and other fundamental
programming techniques. The six women invented the discipline of programming
digital computers. Around the same time, the Harvard Mark I computer, also
known as the IBM Automatic Sequence Controlled Calculator (ASCC), hired its
first programmers who are also pioneers of computer programming: Richard
Milton Bloch, Robert Campbell, and Grace Hopper. Hopper invented one of the
first linkers and popularized the idea of machine-independent programming
languages, which led to the development of COBOL, an early high-level
programming language still in use today. The limited speed and memory capacity
forced programmers to write hand-tuned assembly language programs. It was
eventually realized that programming in assembly language required a great deal of
intellectual effort.
An early proposal for a high-level programming language was Plankalkul,
developed by Konrad Zuse for his Z1 computer between 1943 and 1945 but not
implemented at the time.
The first functioning programming languages designed to communicate
instructions to a computer were written in the early 1950s. John Mauchly's Short
Code, proposed in 1949, was one of the first high-level languages ever developed
for an electronic computer. Unlike machine code, Short Code statements
represented mathematical expressions in an understandable form. However, the
program had to be translated into machine code every time it ran, making the
process much slower than running the equivalent machine code.
In the early 1950s, Alick Glennie developed Autocode, possibly the first compiled
programming language, at the University of Manchester. In 1954, a second
iteration of the language, known as the "Mark 1 Autocode," was developed for the
Mark 1 by R. A. Brooker. Brooker also developed an auto code for the Ferranti
Mercury in the 1950s in conjunction with the University of Manchester. The
version for the EDSAC 2 was devised by Douglas Hartree of the University of
Cambridge Mathematical Laboratory in 1961. Known as EDSAC 2 Autocode, it
was a straight development from Mercury Autocode adapted for local
circumstances and was noted for its object code optimization and source-language
diagnostics which were advanced for the time. A contemporary but separate thread
of development, Atlas Autocode was developed for the University of Manchester
Atlas 1 machine.
In 1954, FORTRAN was invented at IBM by a team led by John Backus; it was
the first widely used high-level general-purpose programming language to have a
functional implementation, as opposed to just a design on paper. When FORTRAN
was first introduced, it was viewed with skepticism due to bugs, delays in
development, and the comparative efficiency of "hand-coded" programs written in
assembly. However, in a hardware market that was rapidly evolving; the language
eventually became known for its efficiency. It is still a popular language for high-
performance computing and is used for programs that benchmark and rank the
world's fastest supercomputers.
Another early programming language was devised by Grace Hopper in the US,
called FLOW-MATIC. It was developed for the UNIVAC I at Remington Rand
during the period from 1955 until 1959. Hopper found that business data
processing customers were uncomfortable with mathematical notation, and in early
1955, she and her team wrote a specification for an English programming language
and implemented a prototype. The FLOW-MATIC compiler became publicly
available in early 1958 and was substantially complete in 1959. Flow-Matic was a
major influence in the design of COBOL, since only it and its direct descendant
AIMACO were in actual use at the time.
Other languages still in use today include LISP (1958), invented by John
McCarthy and COBOL (1959), created by the Short Range Committee. Another
milestone in the late 1950s was the publication, by a committee of American and
European computer scientists, of "a new language for algorithms"; the ALGOL 60
Report (the "ALGOrithmic Language"). This report consolidated many ideas
circulating at the time and featured three key language innovations:
• nested block structure: code sequences and associated declarations could be
grouped into blocks without having to be turned into separate, explicitly named
procedures;
• lexical scoping: a block could have its private variables, procedures, and
functions, invisible to code outside that block, that is, information hiding.
Another innovation, related to this, was in how the language was described:
• a mathematically exact notation, Backus–Naur form (BNF), was used to describe
the language's syntax. Nearly all subsequent programming languages have used a
variant of BNF to describe the context-free portion of their syntax.
Algol 60 was particularly influential in the design of later languages, some of
which soon became more popular. The Burroughs large systems were designed to
be programmed in an extended subset of Algol.
Algol's key ideas were continued, producing ALGOL 68:
• syntax and semantics became even more orthogonal, with anonymous routines, a
recursive typing system with higher-order functions, etc.;
• not only the context-free part but the full language syntax and semantics were
defined formally, in terms of Van Wijngaarden grammar, a formalism designed
specifically for this purpose.
Fortran
Some notable languages that were developed in this period include:
• 1951 – Regional Assembly Language
• 1952 – Autocode
• 1954 – IPL (forerunner to LISP)
• 1955 – FLOW-MATIC (led to COBOL)
• 1957 – FORTRAN (first compiler)
• 1957 – COMTRAN (precursor to COBOL)
• 1958 – LISP
• 1958 – ALGOL 58
• 1959 – FACT (forerunner to COBOL)
• 1959 – COBOL
• 1959 – RPG
• 1962 – APL
• 1962 – Simula
• 1962 – SNOBOL
• 1963 – CPL (forerunner to C)
• 1964 – Speakeasy
• 1964 – BASIC
• 1964 – PL/I
• 1966 – JOSS
• 1966 - MUMPS
• 1967 – BCPL (forerunner to C)
The 1990s: the Internet age
Some notable languages that were developed in this period include:
• 1990 – Haskell
• 1991 – Python
• 1991 – Visual Basic
• 1993 – Lua
• 1993 – R
• 1994 – CLOS (part of ANSI Common Lisp)
• 1995 – Ruby
• 1995 – Ada 95
• 1995 – Java
• 1995 – Delphi (Object Pascal)
• 1995 – JavaScript
• 1995 – PHP
• 1997 – Rebol

Current trends
 AOP or Aspect Oriented Programming allows developers to insert code in
another module or class at "join points"
 Domain-specific languages and code generation
 XML for a graphical interface (XUL, XAML)
 Increased interest in distribution and mobility.
 Integration with databases, including XML and relational databases.
 Open source as a developmental philosophy for languages, including the
GNU Compiler Collection and languages such as Python, Ruby, and Scala.
 Massively parallel languages for coding 2000 processor GPU graphics
processing units and supercomputer arrays including OpenCL
 Early research into (as-yet-unimplementable) quantum computing
programming languages
 More interest in visual programming languages like Scratch
Some notable languages developed during this period include:
• 2000 – ActionScript
• 2001 – C#
• 2001 – D
• 2002 – Scratch
• 2003 – Groovy
• 2003 – Scala
• 2005 – F#
• 2006 – PowerShell
• 2007 – Clojure
• 2009 – Go
• 2010 – Rust
• 2011 – Dart
• 2011 – Kotlin
• 2011 – Elixir
• 2012 – Julia
• 2012 - TypeScript
• 2014 – Swift
Історія мов програмування
Історія мов програмування тягнеться від документації ранніх механічних
комп'ютерів до сучасних інструментів розробки програмного забезпечення.
Мови раннього програмування були вузькоспеціалізованими, спираючись на
математичні позначення та подібний незрозумілий синтаксис. У 1940-х роках
Жан Дженнінгс Бартік, Бетті Холбертон, Марлін Уескофф, Кетлін МакНілті,
Рут Тейтельбаум та Френсіс Спенс розробили підпрограми, гніздування та
інші основні методи програмування та винайшли дисципліну програмування
цифрових комп'ютерів. Грейс Хоппер винайшла одного з перших лінкерів і
популяризувала ідею машинонезалежних мов програмування, що призвело
до розробки COBOL - ранньої мови програмування високого рівня, яка
використовується і сьогодні. Протягом XX століття дослідження теорії
компіляторів призводять до створення мов програмування високого рівня, які
використовують більш доступний синтаксис для спілкування інструкцій.
Першою мовою програмування на високому рівні був Планкалкуль,
створений Конрадом Зузе між 1942 та 1945 роками. Першу мову високого
рівня, що має асоційований компілятор, створив Коррадо Бом у 1951 році для
його кандидатської дисертації. Першою комерційно доступною мовою був
FORTRAN (FORmula TRANslation), розроблений у 1956 році (перший
посібник з'явився в 1956 р., Але вперше розроблений у 1954 р.) Командою
під керівництвом Джона Бекуса в IBM.
Рання історія
Протягом 1842–1849 рр. Ада Ловелас переклала спогади італійського
математика Луїджі Менабреа про новітню запропоновану машину Чарльза
Беббіджа: Аналітичний двигун; вона доповнила мемуари зауваженнями, які
детально вказали метод обчислення чисел Бернуллі за допомогою двигуна,
визнаний деякими істориками першою в світі опублікованою комп'ютерною
програмою.
Перші комп'ютерні коди були спеціалізовані для їх застосування: наприклад,
Церква Алонцо змогла виразити обчислення лямбда формульним способом, а
машина Тьюрінга - це абстракція роботи машини для маркування стрічки.
Деяким людям потрібен певний ступінь виразності та читабельності людини,
перш ніж буде надано статус "мови програмування". Жаккард Ломс і
механізм відмінності Чарльза Беббіджа мали прості, надзвичайно обмежені
мови для опису дій, які ці машини повинні виконувати.
Перші мови програмування
У 40-х роках були створені перші впізнавані сучасні комп'ютери з
електричним харчуванням. Наприклад, перший повністю функціональний
комп'ютер відомий як Електронний числовий інтегратор та комп’ютер
(ENIAC). З Бартиком, як першим програмістом ENIAC, в якості його
програмістів було прийнято на роботу шість жінок: Жан Дженнінгс Бартік,
Бетті Холбертон, Марлін Уескофф, Кетлін МакНтилті, Рут Тейтельбаум та
Френсіс Спенс. Вони розробили підпрограми, гніздування та інші основні
методи програмування. Шість жінок винайшли дисципліну програмування
цифрових комп'ютерів. Приблизно в той же час комп'ютер Гарвард Марк I,
відомий також як автоматичний калькулятор керованої послідовністю IBM
(ASCC), найняв своїх перших програмістів, які також є піонерами
комп'ютерного програмування: Річарда Мілтона Блоха, Роберта Кемпбелла
та Грейс Хоппер. Хоппер винайшов одного з перших лінкерів і
популяризував ідею машинонезалежних мов програмування, що призвело до
розробки COBOL - ранньої мови програмування високого рівня, яка
використовується і сьогодні. Обмежена швидкість та ємність пам'яті
змушували програмістів писати вручну налаштовані мовні програми.
Зрештою було зрозуміло, що програмування на мові асемблера вимагає
великих інтелектуальних зусиль.
Ранньою пропозицією щодо мови програмування на високому рівні був
Plankalkul, розроблений Конрадом Зузе для його комп'ютера Z1 між 1943 та
1945 роками, але на той час не реалізований.
Перші функціонуючі мови програмування, призначені для передачі
інструкцій на комп’ютер, були написані на початку 1950-х. Короткий кодекс
Джона Мохлі, запропонований у 1949 році, був однією з перших мов
високого рівня, розроблених для електронного комп’ютера. На відміну від
машинного коду, заяви короткого коду представляли математичні вирази в
зрозумілій формі. Однак програму довелося переводити в машинний код
кожного разу, коли вона запускалася, що робить процес набагато
повільнішим, ніж запуск еквівалентного машинного коду.
На початку 1950-х років Алік Гленні розробив Автокод, можливо, першу
складену мову програмування в Манчестерському університеті. У 1954 році
для Марка 1 Р. А. Брукер розробив другу ітерацію мови, відому як "Автокод
Марка 1". Брукер також розробив автокод для Ферранті Меркурія у 50-х
роках спільно з Манчестерським університетом. Версія для EDSAC 2 була
розроблена Дугласом Хартрі з Математичної лабораторії Кембриджського
університету (Університет Кембриджського університету) в 1961 році.
Відомий як Автокод EDSAC 2, це була пряма розробка з автокоду Меркурія,
адаптованого для місцевих обставин і був відомий своєю оптимізацією
об'єктного коду та мовою джерела. діагностика, яка була вдосконалена на той
час. Сучасний, але окремий потік розвитку, Atlas Autocode був розроблений
для машини університету Манчестер Atlas 1.
У 1954 році FORTRAN був винайдений у IBM командою під керівництвом
Джона Бекуса; це була перша широко застосовувана мова програмування
високого рівня, яка мала функціональну реалізацію, на відміну від простого
дизайну на папері. Коли вперше було запроваджено FORTRAN, на нього
ставились скептично, через помилки, затримки в розробці та порівняльну
ефективність програм, написаних уручну, написаних у збірці. Однак на
ринку апаратних засобів, який швидко розвивався; мова з часом стала відома
своєю ефективністю. Він все ще є популярною мовою для високоефективних
обчислень і використовується для програм, які орієнтують та рейтинг
найшвидших у світі суперкомп'ютерів.
Ще одна мова раннього програмування була розроблена Грейс Хоппер у
США під назвою FLOW-MATIC. Він був розроблений для UNIVAC I в
Remington Rand в період з 1955 по 1959 роки. Хоппер встановив, що
клієнтам, що займаються обробкою бізнес-даних, незручно мати математичні
позначення, і на початку 1955 року вона та її команда написали специфікацію
для англійської мови програмування та реалізували прототип. Компілятор
FLOW-MATIC став загальнодоступним на початку 1958 р. І був повністю
завершений у 1959 р. Flow-Matic був основним впливом у дизайні COBOL,
оскільки на той момент фактично використовувались лише він та його
прямий нащадок AIMACO.
Інші мови, які досі вживаються сьогодні, включають LISP (1958), винайдений
Джоном Маккарті та COBOL (1959), створений Комітетом короткого
діапазону. Ще однією віхою наприкінці 50-х років стала публікація
комітетом американських та європейських вчених-комп'ютерів "нової мови
для алгоритмів"; звіт ALGOL 60 ("ALGOrithmic Language"). У цьому звіті
було консолідовано багато ідей, що циркулювали в той час, і було
представлено три ключові мовні інновації:
• вкладена блокова структура: послідовності коду та пов’язані з ними
декларації можна згрупувати в блоки без необхідності перетворювати їх на
окремі, чітко названі процедури;
• лексичне обстеження: блок може мати власні приватні змінні, процедури та
функції, невидимі для коду поза цим блоком, тобто приховування інформації.
Ще одне нововведення, пов’язане з цим, полягало в тому, як описувалася
мова:
• для опису синтаксису мови було використано математично точне
позначення форми "Редус - Наур" (BNF). Майже всі наступні мови
програмування використовували варіант BNF для опису безконтекстної
частини їх синтаксису.
Algol 60 особливо вплинув на розробку пізніших мов, деякі з яких незабаром
стали більш популярними. Великі системи Берроуза були розроблені для
програмування в розширеному підмножині Algol.
Основні ідеї Алгола були продовжені, виробляючи ALGOL 68:
• синтаксис і семантика стали ще більш ортогональними, з анонімними
процедурами, рекурсивною системою набору тексту з функціями вищого
порядку тощо;
• формально визначений для цього не лише контекстну частину, але й
синтаксис та семантику повних мов, з точки зору граматики Ван Війнгаарда.
Фортран
Деякі помітні мови, які були розроблені в цей період, включають:
• 1951 – Regional Assembly Language
• 1952 – Autocode
• 1954 – IPL (попередник LISP)
• 1955 – FLOW-MATIC (призвело до COBOL)
• 1957 – FORTRAN (перший компілятор)
• 1957 – COMTRAN (попередник COBOL)
• 1958 – LISP
• 1958 – ALGOL 58
• 1959 – FACT (передвісником COBOL)
• 1959 – COBOL
• 1959 – RPG
• 1962 – APL
• 1962 – Simula
• 1962 – SNOBOL
• 1963 – CPL (попередник до C)
• 1964 – Speakeasy
• 1964 – BASIC
• 1964 – PL/I
• 1966 – JOSS
• 1966 - MUMPS
• 1967 – BCPL (попередник до C)
1990-ті: епоха Інтернету
Деякі помітні мови, які були розроблені в цей період, включають:
• 1990 – Haskell
• 1991 – Python
• 1991 – Visual Basic
• 1993 – Lua
• 1993 – R
• 1994 – CLOS (part of ANSI Common Lisp)
• 1995 – Ruby
• 1995 – Ada 95
• 1995 – Java
• 1995 – Delphi (Object Pascal)
• 1995 – JavaScript
• 1995 – PHP
• 1997 – Rebol
Сучасні тенденції
 AOP або Aspect-орієнтоване програмування, що дозволяє розробникам
вставляти код в інший модуль або клас у "точках приєднання"
 Доменні мови та генерація коду
 XML для графічного інтерфейсу (XUL, XAML)
 Підвищений інтерес до розповсюдження та мобільності.
 Інтеграція з базами даних, включаючи XML та реляційні бази даних.
 Відкритий код як філософія розвитку мов, включаючи колекцію
компіляторів GNU та такі мови, як Python, Ruby та Scala.
 Масивно паралельні мови для кодування 2000 процесорних процесорів
графічних процесорів 2000 та суперкомп'ютерних масивів, включаючи
OpenCL
 Ранні дослідження мов програмування квантових обчислень (поки що
непереконливі)
Більше інтересу до мов візуального програмування, як Scratch
Деякі помітні мови, розроблені в цей період, включають:
• 2000 – ActionScript
• 2001 – C#
• 2001 – D
• 2002 – Scratch
• 2003 – Groovy
• 2003 – Scala
• 2005 – F#
• 2006 – PowerShell
• 2007 – Clojure
• 2009 – Go
• 2010 – Rust
• 2011 – Dart
• 2011 – Kotlin
• 2011 – Elixir
• 2012 – Julia
• 2012 - TypeScript
• 2014 – Swift

You might also like