Professional Documents
Culture Documents
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