История развития языков программирования кратко: Краткая история развития языков программирования

Содержание

Краткая история развития языков программирования

По мере развития вычислительной техники возникали разные методики программирования. На каждом этапе создавался новый подход, который помогал программистам с растущим усложнением программ.

Начало развития

Первые программы заключались в установке ключевых переключателей на передней панели вычислительного устройства. Очевидно, таким способом можно было составить только небольшие программы.

С развитием компьютерной техники появился машинный язык, с помощью которого программист мог задавать команды, оперируя с ячейками памяти, полностью используя возможности машины. Однако использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Поэтому от его использования пришлось отказаться.

Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающие наличие и типы ошибок, которые надо анализировать.

«Слова» на машинном языке называются инструкции, каждая из которых представляет собой одно элементарное действие для центрального процессора, такое, например, как считывание информации из ячейки памяти.

Каждая модель процессора имеет свой собственный набор машинных команд, хотя большинство из них совпадает. Если Процессор А полностью понимает язык Процессора Б, то говорится, что Процессор А совместим с Процессором Б. Процессор Б будет назваться не совместимым с Процессором А если А имеет команды, не распознаваемые Процессором Б.

Язык ассемблера

В случае, когда нужно иметь эффективную программу, вместо машинных языков используются близкие к ним машинно-ориентированные языки — ассемблеры. Люди используют мнемонические команды взамен машинных команд.

Но даже работа с ассемблером достаточно сложна и требует специальной подготовки.

Например, для процессора Zilog Z80 машинная команда 00000101 предписывает процессору уменьшить на единицу свой регистр B. На языке ассемблера это же будет записано как DEC B.

Структурное программирование

Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня — Фортран (англ. FORTRAN — FORmula TRANslator). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования (англ. structured programming language), таких как Алгол(1958), Паскаль(1970), Си(1972).

Структурное программирование предполагает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода (GOTO), автономные подпрограммы, поддержка рекурсии и локальных переменных.

Суть такого подхода заключается в возможности разбиения программы на составляющие элементы.

Также создавались функциональные (аппликативные) языки (Пример: Lisp — англ. LISt Processing, 1958) и логические языки (пример: Prolog — англ. PROgramming in LOGic, 1972).

Хотя структурное программирование, при его использовании, дало выдающиеся результаты, даже оно оказывалось несостоятельным тогда, когда программа достигала определенной длины. Для того чтобы написать более сложную (и длинную) программу, нужен был новый подход к программированию.

ООП

В итоге в конце 1970-х и начале 1980-х были разработаны принципы объектно-ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием.

Примером объектно-ориентированных языков являются: Object Pascal, C++,

ООП позволяет оптимально организовывать программы, разбивая проблему на составные части, и работая с каждой по отдельности. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче.

Ссылки

Wikimedia Foundation.
2010.

История развития языков программирования

Замечание 1

Для работы первых программ нужно было устанавливать ключевые переключатели на передней панели вычислительного устройства. Естественно, с помощью такого способа можно было составлять только небольшие программы. Одна из первых попыток создания полноценного языка программирования была предпринята немецким ученым Конрадом Цузе, который за период 1943–1945 гг. разработал язык Plankalkul. Plankalkul был очень перспективным языком, который фактически являлся языком высокого уровня, однако во времена войны он не получил должной практической реализации, а его описание было опубликовано только в 1972 г.

Машинный код. Ассемблер

История языков программирования начинается с разработки машинного языка: языка логического нуля и единицы. Запись с помощью этого языка была очень сложной и утомительной.

Для облегчения работы программистов в конце 1940-х гг. был разработан язык ассемблер. Вместо двоичных цифр, которые обозначали какую-либо команду, записывались короткие слова или аббревиатуры. Программисты считают ассемблер языком программирования низкого уровня, поскольку он близок к языку самого низкого уровня – машинному. Программы, написанные на ассемблере, напрямую зависят от характеристик конкретного процессора, поэтому его называют машинно-ориентированным языком.

Написание программ на ассемблере является довольно сложной задачей, к тому же необходимы знания устройств компьютера. И тем не менее программы на ассемблере – самые эффективные и работоспособные.

Алгоритмические языки

В ходе развития программирования возникла необходимость разработки новых, более совершенных языков программирования, которые бы были схожи с естественными языками и позволяли бы не работать напрямую с машинными командами. Их стали называть языками высокого уровня.
Языки высокого уровня ориентированы на описание алгоритмов, поэтому их называют алгоритмическими языками. Преимуществом таких языков является большая наглядность и независимость от конкретного компьютера.

Готовые работы на аналогичную тему

Поскольку компьютером распознается только машинный язык, программа, написанная на алгоритмическом языке, перед выполнением должна переводится на этот язык специальной программой – транслятором. В трансляторе заложены все правила алгоритмического языка и способы преобразования различных его конструкции на машинный язык. Существуют две разновидности трансляции:

  • Компиляция (Compilation) – метод выполнения программ, при котором инструкции программы выполняются только том случае, когда собран перевод всего текста программы.
  • Интерпретация (Interpretation) – метод выполнения программ, при котором инструкции программы переводятся и сразу выполняются.

Замечание 2

Преимуществом программ, написанных на алгоритмическом языке, является упрощение работы с программой за счет относительной простоты написания, удобной читаемости, возможности ее коррекции. К недостаткам относятся: дополнительное время и память на трансляцию.

Структурное программирование

В 1954 г. была начата разработка первого компилятора языка высокого уровня. Через два года появился язык Fortran (FORmula TRANslator – «переводчик формул»). Язык содержал средства, которые значительно упрощали разработку, однако программирование на Fortran не было простой задачей: если в коротких программах он был легко понимаемым, то когда дело касалось больших программ язык становился нечитаемым. Несмотря на это, язык был довольно успешным и было выпущено много его версий.

Проблемы были решены после разработки языков структурного программирования: в них появилась возможность создания программных блоков, независимых подпрограмм, поддержки рекурсии и локальных переменных, отсутствие оператора безусловного перехода (GoTo). Таким образом, такие языки стали поддерживать возможность разбиения программы на составляющие элементы.

На протяжении десяти лет было создано достаточно большое число новых языков:

  1. Algol (1958 г.) предназначался для записи алгоритмов, которые составлены из обособленных блоков;
  2. Cobol (1959 г.) использовался для массовой обработки данных в сферах управления и бизнеса;
  3. Basic (1965 г.) позволял писать простые программы, использовался для обучения основам программирования.

Совсем немногие из созданных языков были структурированными. Также были созданы специализированные языки: Lisp, Prolog, Forth и т.д.
Особого внимания заслуживает язык Pascal (1970 г.), названный в честь ученого Блеза Паскаля, который использовался как для обучения, так и для решения задач различной сложности. Программы на Pascal легко читаемы, что позволяет быстро находить и исправлять ошибки, также он был хорошо структурированным. Все вышеперечисленное привело к его широкой распространенности, и даже в данное время его активно используют в учебных заведениях.

В 1972 г. появился язык С, что стало успешным шагом в программировании. Язык сочетал в себе преимущества многих языков и обладал большим числом разных нововведений. Широкие возможности, структурированность и относительная простота его изучения позволили языку быстро стать признанным и завоевать место одного из основных языков.

Появление структурного программирования дало отличные результаты, но все же было еще сложно писать длинные и серьезные программы.

Объектно-ориентированное программирование (ООП)

С 1970-х гг. были заложены основы объектно-ориентированного программирования (ООП), которое возникло как поседствие развития процедурного программирования, при котором данные и подпрограммы их обработки формально не были связаны.

ООП включает следующие основные понятия:

  • Класс – модель ещё не существующего объекта. Фактически он является схемой объекта, описывая его устройство.
  • Объект – экземпляр класса, сущность в адресном пространстве вычислительной системы, которая появляется при создании экземпляра класса.
  • Абстракция – присвоение объекту характеристик, четко определяющих его границы, которые отличают его от всех других объектов. Основной идеей является отделение способа использования составных объектов данных от деталей их реализации в виде более простых объектов.
  • Инкапсуляция – объединение свойств (данных) и методов (подпрограмм) в классе для того, чтобы скрыть данные объекта от остальной программы и обеспечить целостность и независимость объекта (изменение свойств объекта возможно только через специальные методы класса).
  • Наследование – механизм языка, который позволяет описать новый класс на основе уже существующего класса (или классов) с добавлением новых свойств и методов.
  • Полиморфизм – свойство системы использовать объекты с одинаковым интерфейсом без получения информации о его типе и внутренней структуре.

Замечание 3

В 1967 г. появился язык Симула – первый язык программирования, в котором были предложены принципы объектной ориентированности. Он поддерживал работу с объектами, классами, виртуальными методами и т.д., но все эти возможности не получили достойной оценки современников. Тем не менее, большинство этих концепций были заложены Аланом Кэем и Дэном Ингаллсом в язык Smalltalk, который стал первым широко распространённым объектно-ориентированным языком программирования.

В настоящее время число прикладных языков программирования, которые реализуют объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. Основные языки, которые поддерживают концепцию ООП: C++, C#, Object Pascal (Delphi), Java и т.д.

Развитие Интернета

С развитием технологии WWW (World Wide Web) Интернет стал очень популярным. Было создано большое количество вспомогательных языков для обеспечения работы с Интернетом, оформления сайтов, доступа к ресурсам и т.д.

Становится распространенным интерпретируемый язык Perl, который отличается своей простотой и легкой переносимостью на другие платформы. Он предназначен для написания приложений и CGI-скриптов различной сложности. Также широко используется и играет значительную роль в развитии и функционировании Интернета язык Java.

В 1970-х гг. появился язык SQL – язык структурированных запросов, который был создан для доступа и работы с базами данных.

Для написания кодов страниц веб-сайтов разработан язык разметки гипертекстов HTML, который содержит команды для разметки и оформления текста и графики. Для придания большей привлекательности и функциональности сайта используются:

  • Скрипты JavaScript, которые выполняются в веб-браузере пользователя и используются в основном для улучшения внешнего вида сайта и решения мелких задач.
  • Скрипты PHP, которые выполняются на стороне сервера и посылают в браузер пользователя уже обработанную информацию. Применяются для создания динамических HTML-страниц, гостевых книг, ведения форумов и опросов.
  • CGI-сценарии, которые написаны преимущественно на Perl, C/C++, выполняются на стороне сервера и зависят от конкретных действий пользователя. Применяются, как и сценарии PHP, для создания динамических HTML-страниц, гостевых книг, ведения форумов и опросов.

История развития языков программирования: кратко обо всем

Программирование – трудоемкий и сложный процесс, постичь который под силу не каждому. Машинный язык состоит из множества алгоритмов и машинных кодов. И сегодняшние компьютеры являются таким совершенным оборудованием благодаря тому, что запрограммированы. И не была бы так успешна история развития программного обеспечения, если бы не был придуман специальный язык для машин, переводящих символические ключевые слова в машинные коды. Рассмотрим, как же складывалась история развития языков программирования.

Первые автокоды появились в 1955 году усилиями разработчиков компании IBM под руководством инженера Джона Бэкуса.  Это был язык высокого уровня, названный Фортран, не набор разрозненных простых команд, а организация более крупных кодов, которые стали называться операторами, или же алгоритмическими языками. Для их перевода на машинный  автокод были изобретены трансляторы, которые преобразуют алгоритмы и делают его понятным для электронно-вычислительной машины. Происходит это двумя способами: интерпретационным и компиляционным. Благодаря простоте версии Фортран быстро входили в употребление, и последняя из них и сегодня является одной из самых популярных языков программирования ЭВМ.

Однако, это не единственный автокод для машин. История  развития языков программирования продолжается созданием алгоритмов Алгол, которые применяются в основном в ученой среде и имеют в составе большое количество новых понятий. Происходит это событие в 1960 году. А чуть позже пытливые сотрудники компании IBM придумали язык Кобол, ориентированный на использование в бизнес среде и используемый для обработки сложной и объемной  информации экономического характера.

История  развития языков программирования продолжается профессорами колледжа в Дартсмуте Т. Куртцем и Дж. Кемени, которые разработали общеизвестный Бейсик. Он намного проще, чем Фортран, и поэтому использовался в персональных компьютерах. Он произвел эффект взрыва, став основным набором автокодов программирования, и сделав компьютеры достоянием самых обычных пользователей.

Простота использования и возможности диалогового общения  — это самые главные преимущества языка Бейсик. К недостаткам же относится отсутствие ограничения на составление программ, что очень часто запутывает их и делает логически непонятными. Программы, составленные с помощью Бейсик, имеют замедленный характер, потому что в их основе лежат не компиляторы, а интерпретаторы.

Сегодня ученые продолжают работать над его усовершенствованием и стараются приблизить к программе Паскаль, которым далее ознаменовалась  история развития языков программирования. Его создателем, по праву, считается профессор Цюрихского политехнического университета Никлаус Вирт. А название своему изобретению он дал в честь Паскаля, являющегося первым конструктором самой первой вычислительной машины. Это один из самых легких и доступных программных языков, позволяющий писать ясные и понятные программы.

История  развития программирования  была бы неполной без языка Ада, названного в честь первой женщины программистки Ады Лавлейс, дочери всем известного пота Джорджа Байрона. Он представляет собой более усовершенствованный и универсальный язык программирования, составленный на основе Паскаль.

История  развития программного обеспечения имеет в своем арсенале еще много программных языков, которые написаны для специальных областей применения. Например, в моделировании применяются Симул, Симкрит и GPSS. Для  управления аппаратурой используется язык ФОРТ. Системные программы пишутся языком СИ. Базы данных создаются языком Кодасил. Для обучения программированию удобны Лого, Робик и алгоритмический язык А.П. Ершова.

История  развития программирования до конца еще не написана и вряд ли это произойдет в ближайшем будущем.

История создания программирования

Программирование: появление и развитие.

Первые языки взаимодействия человека и компьютера мало чем отличались от двоичной системы. Именно неудобство использования в работе машинного кода послужило причиной для разработки специальных языков программирования.

“Машина для исчисления разностей” и дочь поэта Байрона

В 1830 году Чарльз Беббидж начал работу над “Машиной для исчисления разностей”. Это аналитическое устройство и стало прототипом компьютеров. Ученый был профессором математики в Кэмбриджском университете. Реализовать в то время такие разработки было не просто. В теории англичанин изложил многие идеи, которые были применены позже при создании ЭВМ и принципов их работы.
Управление машинами с помощью программ — это тоже предложение Чарльза. Вместе с ним работала Ада Лавлейс — дочь знаменитого британского поэта Байрона. Эта женщина вошла в историю как первый программист. Ей принадлежат идея применения в работе с устройством двоичной системы счисления и основные принципы программирования. Ада ввела в науку многие термины, которые применяются и сейчас. Самые первые языки основывались на ее разработках.

Первые компьютеры

Машина Беббиджа получила второе рождение в конце 19 века. Его идеи были реализованы американцем Г. Холлеритом. Для работы устройства он впервые применил электричество. С помощью созданного счетно-аналитического устройства ученым были успешно обработаны данные переписи населения. Позже он основал фирму, выпускающую перфокарты и вычислительные аппараты.
Большой вклад в развитие техники внес А. Тьюринг. Он ввел и обосновал понятие алгоритма и предложил теорию создания ЭВМ.
Первый компьютер был изобретен в Гарварде под руководством профессора Айкена. Он носил название “МАРК-1”. Устройство было собрано по заказу ВВС Соединенных Штатов. На то время у ученых появилась возможность использовать в разработках электронные и электрические детали. Поэтому изобретение уже было не механической машиной, а электромеханической. Оно был огромных размеров и занимало отдельное помещение в университете.
Прогресс не стоял на месте: появился Эниак — первая электронная ЭВМ. Немного позже англичанами было изобретено оборудование, оснащенное запоминающим устройством — EDSAC. Многие именно эти аппараты называют первыми компьютерами, считая “МАРК-1” просто мощной вычислительно-аналитической машиной.

Как и для чего разрабатывались разные языки программирования

Развитие техники дало толчок появлению новой отрасли прикладной математики — программированию. Первые программы записывались вручную на перфокартах. Коды проставлялись на них при помощи проколов в определенных местах. В записи использовались “ноли” и “единицы”, так как машины других обозначений тогда не понимали.
Составление программы таким образом — процесс трудоемкий. Перфокарт с командами для одной задачи требовалось множество. К тому же, программист был обязан знать всю бинарную таблицу кодов.
Для упрощения задач в 50-х годах прошлого века человечество принялось разрабатывать специальные языки. Один из первых — Ассемблер. С его появлением программисту уже не нужно было знать кучу двоичных кодов. Теперь было достаточно запомнить символичные термины, что оказалось гораздо проще. Фортран — еще один язык, появившийся в то время. Он с успехом применяется в современной среде разработок, относясь к высокоуровневым языкам. Используется в основном для научных вычислений.
По ходу расширения задач, выполняемых компьютерами, стали появляться более узконаправленные языки: для работы с текстами, графикой, экономическими документами и т.д. Так, с появлением и развитием интернета ЭВМ перестали быть машинами только для обработки и хранения информации. Необходимость объединения компьютеров в сети и предоставления людям удаленного доступа к ресурсам стала толчком к созданию новых кодов.
Паскаль — еще один известный высокоуровневый язык. Он появился в рамках конкурса 1968 года. Разработчик — Н. Вирт. Победителем он не стал, зато язык известен многим и до сих пор находит применение. Изначально он был задуман специально для обучения студентов. Творение Вирта объединяло множество мощных и эффективных методов обработки информации. Как ни странно, победитель конкурса — язык Алгол-68 не получил дальнейшего развития и популярности. Паскаль же напротив развивался и применялся для выполнения многих задач. Еще один из высших языков, применяемых для обучения — Бейсик.
Наравне с языками разрабатывались специальные программы для перевода команд в двоичный код, понятный машине. Дальнейшее развитие программирования становилось все стремительнее и разнообразнее. Оказалось практически невозможным создание единого универсального языка: только специально разработанный метод для реализации определенных типовых действий позволяет достичь наилучших результатов.
Бурное развитие IT-технологий ставит все новые задачи. Наравне с классическим программированием применяется модульное — с использованием в работе парадигм. За короткий период, от появления первых языков до настоящего времени, разработано очень много методов взаимодействия с компьютерами.

История создания Python

История создания

Создание языка Python начиналось довольно медленно и неуверенно. Главным энтузиастом, который в 1990 году пытался воплотить Python в реальность, стал Гвидо Ван Россум. Именно этот человек, работая над разработкой языка ABC в Голландском институте CWI, понял, что хотел бы создать нечто новое. Это послужило стартом для написания нового интерпретатора; конечно, не без использования некоторых идей, взятых с ABC.

Интересным моментом выступает то, что первый рабочий прототип Python был создан на домашнем Макинтоше Гвидо, да и еще за пару выходных. Что касается распространения, то делалось это с помощью Интернет.

В 1996 году, когда данный проект набирал критическую массу, к разработке подключился Стив Маевский, который был довольно известным в сети, так как вел свой блог «Сравнительная критика языков программирования». Стив, как и Гвидо был поклонником Macintosh, возможно, это и послужило основой их сотрудничества. Стоить отметить, что язык получил название «Python» не в честь вида змей, как ошибочно считают многие разработчики. Во времена разработки «Питона» Гвидо любил смотреть комедийное шоу «Воздушный цирк Монти Пайтона», поэтому и назвал своей проект в честь Монти Пайтона.

Так как Питон имел отличный потенциал и свободно распространялся через Интернет, в него появилось ядро последователей — люди, которые были заинтересованы в развитии Python как языка программирования. В начале своего пути, этот язык имел вид небольшого интерпретатора с малым количеством функций и полным отсутствием ООП, что всех не устраивало и мотивировало на дальнейшее развитие языка.

Уже в 1991 году стали появляться первые средства ООП разработки.

Спустя некоторое временя, Гвидо предложили должность в корпорации CNRI, которая находится в Америке. Недолго думая, Гвидо покинул Голландию и принялся за работу. Занимаясь проектами компании, он часто использовал Python для решения многих задач, а в свободное время занимался его развитием как интерпретатора.

По такой схеме Питон развивался до 1999 года и получил версию 1.5.2. По достижении этой планки в жизни Гвидо начались изменения. Компания все больше загружала его работой, что сильно уменьшало время для любимого занятия.

Это побудило задуматься Гвидо о целесообразности такой работы, в результате чего, он принял решение искать спонсора, который даст возможность работать только над развитием языка. Так как к тому времени в интернете уже существовало немалое сообщество пользователей, фирма BeOpen решила принять участие в продвижении Python. По контракту с CNRI Гвидо обязался выпустить версию 1.6, что он и сделал перед уходом. Работая с BeOpen он показал миру версию 2.0. Многие утверждают, что версия 2.0 дала сильный толчок в социальном плане. А все потому, что процесс развития языка стал более открытым. Гвидо перевел все данные на SourceForge, что сильно понравилось сообществу, которое требовало внедрения возможности участия в разработке кода. Кроме этого в то время появился Юникод, а это большой шаг вперед. К Юникоду создали новый механизм регулярных выражений, который мог работать как с обычными строками, так и с Юникодовыми.

Через некоторое время в компании BeOpen начались проблемы. Они решили, что Гвидо должен работать усердней и приносить деньги, а не только просить их, на развитие проекта. Такое поведение не пришлось по душе Гвидо – он уволился и начал размышлять куда идти дальше. Во многих интервью, Гвидо рассказывает, что этот фрагмент жизни был переломный.

В этот раз, свое финансирование ему предложила компания Digital Creations – авторы Zope. Как не странно, но это было пятое предложение от них, на что Гвидо согласился. В этой компании вся команда разработчиков «питона» получила большие возможности, что дало плоды. В том же году был выпущена версия 2.1. Теперь в питоне появились новые объекты с языков closures и иерархия: функции можно вкладывать друг в друга, сохраняя при этом доступ к переменным окружающих функций. Это сильно изменит язык, а главное сильно улучшит его подходы к способу программированию. На данный момент существует версия 3.5.1, что демонстрирует его развитие, ведь каждый год разработчики проделывают огромную работу. Все это превратило простой интерпретатор в очень популярный язык программирования, который используется как первый в обучении миллионов студентов по всему миру.

http://ojde.biz/yazyki-programmirovaniya-python-i-istoriya-ego-sozdaniya/

Эволюция языков программирования

Рассмотрим основные этапы в истории языков программирования и коснемся отдельных языков, сыгравших ключевую роль в развитии программирования.

Языки программирования низкого уровня

Язык программирования, ориентированный на конкретный тип процессора, и, операторы которого близки к машинному коду, называется языком программирования низкого уровня.

Термин «низкий уровень» не обозначает плохое качество языка, таким образом подчеркивается его неразрывная связь с аппаратной частью компьютера.

Машинный язык.

Первые ЭВМ появились в 1940-х годах и программировались с помощью машинных языков. Машинный код состоял из последовательностей нулей и единиц. Каждая элементарная операция имела свой код, необходимо было явно указывать адреса ячеек памяти, в которых хранились данные, или куда их необходимо было сохранять. Такой подход содержал ряд неудобств, основными среди которых являлись:

  • программа была машинно-зависимой, т. к. различные типы процессоров отличались друг от друга архитектурой и системой команд;
  • чтение программы, а также изменение, отладка и поиск ошибок в ней вызывали огромные трудности.

Ассемблер.

В начале 1950-х годов была осуществлена идея использования символьных имен вместо адресов данных и замены цифровых кодов операций на мнемонические (словесные) обозначения. Язык программирования, реализующий данный подход, получил название Ассемблер (от англ. assembler — сборщик).

Программа, записанная на Ассемблере, не может обрабатываться непосредственно процессором. Возникла необходимость преобразования текста программы, записанной на данном языке, в машинный код. Для решения этой задачи были созданы трансляторы.

Транслятор — это программа, преобразующая текст, представленный на одном из языков программирования, в эквивалентную программу на машинном языке.

Использование символьных имен вместо числовых кодов операций и адресов данных существенно упростило процесс программирования, однако, по-прежнему сохранялась зависимость программы от типа процессора.

Необходимо отметить, что во многих сегодняшних задачах, где качество машинного кода ставится выше удобства программирования (например, при разработке ядра операционной системы), по-прежнему используется Ассемблер.

Языки программирования высокого уровня

Дальнейшая эволюция языков программирования привела к появлению языков высокого уровня, что позволило отвлечься от системы команд конкретного типа процессора. Ниже приведена диаграмма важнейших первых языков (источник: Б. Страуструп «Программирование: принципы и практика использования С++»)

Важное значение для развития высокоуровневых языков программирования имела разработка во второй половине 1950-х годов трех языков – Fortran, COBOL, Lisp. Философия, стоящая за этими языками, заключается в создании высокоуровневой системы обозначений, облегчающей программисту написание программ.

Язык программирования Fortran

Fortran (Formula Translation — трансляция формул) — был разработан в 1956 году сотрудниками компании IВM под руководством Джона Бэкуса. Появление Fortran — одно из наиболее значительных событий в истории языков программирования.

Fortran предназначался для научных вычислений. Он обладал достаточно машинно-независимой системой команд: код на языке Fortran можно было переносить из одного компьютера в другой с минимальными изменениями, что явилось огромным достижением для своего времени. По этим причинам Fortran считается первым высокоуровневым языком программирования.

Язык программирования COBOL

COBOL (Common Business-Oriented Language — язык программирования для коммерческих и деловых задач) был разработан комитетом CODASYL в 1959-60 годах по инициативе Министерства обороны США и группы основных производителей компьютеров для обработки бизнес-данных. Основной упор в этом языке был сделан на манипуляции данными: копирование, хранение и поиск, вывод на печать (отчеты).

Язык программирования Lisp.

Lisp (LISt Processing – обработка списков) был разработан в 1958 году Джоном Маккарти для обработки связанных списков и символьной информации.

Lisp был первым языком, не зависевшим от аппаратного обеспечения. В настоящее время существует множество диалектов языка. Это семейство языков нашло применение в области моделирования искусственного интеллекта.

История языка программирования С и C++

Язык С и UNIX

Язык программирования С (читается «Си») создан в начале 70-х годов, когда Кен Томпсон и Дэннис Ритчи из Bell Labs разрабатывали операционную систему UNDC. Сначала они создали часть компилятора С, затем использовали ее для компиляции остальной части компилятора С и, наконец, применили полученный в результате компилятор для компиляции UNIX. Операционная система UNIX первоначально распространялась в исходных кодах на С среди университетов и лабораторий, а получатель мог откомпилировать исходный код на языке С в машинный код с помощью подходящего компилятора С.

Распространение исходного кода сделало операционную систему UNIX уникальной; программист мог изменить операционную систему, а исходный код мог быть перенесен с одной аппаратной платформы на другую. Сегодня стандарт POSIX определяет стандартный набор системных вызовов UNIX, доступных в С, которые должны быть реализованы в версиях UNIX, являющихся POSIX-совместимыми. С был третьим языком, который разработали Томсон и Ритчи в процессе создания UNIX; первыми двумя были, разумеется, А и В.


C мобильный язык ассемблера

По сравнению с более ранним языком — BCPL, язык С был улучшен путем добавления типов данных определенной длины. Например, тип данных int мог применяться для создания переменной с определенным числом битов (обычно 16), в то время как тип данных long мог использоваться для создания целой переменной с большим числом битов (обычно 32). В отличие от других языков высокого уровня, С мог работать с адресами памяти напрямую с помощью указателей и ссылок. Поскольку С сохранил способность прямого доступа к аппаратному обеспечению, его часто относят к языкам среднего уровня или в шутку называют «мобильным языком ассемблера».


С — структурный язык программирования

Что касается грамматики и синтаксиса, то С является структурным языком программирования. В то время как многие современные программисты мыслят в категориях классов и объектов, программисты на С думают в категориях процедур и функций. В С можно определить собственные абстрактные типы данных, используя ключевое слово struct. Аналогично можно описывать собственные целые типы (перечисления) и давать другие названия существующим типам данных при помощи ключевого слова typedef. В этом смысле С является структурным языком с зародышами объектно-ориентированного программирования.


Стандартизация языка С

Широкое распространение языка C на различных типах компьютеров (иногда называемых аппаратными платформами) привело, к сожалению, ко многим вариациям языка. Они были похожи, но несовместимы друг с другом. Это было серьезной проблемой для разработчиков программ, нуждавшихся в написании совместимых программ, которые можно было бы выполнять на нескольких платформах. Стало ясно, что необходима стандартная версия C. В 1983г. ANSI (Американский Национальный Комитет Стандартов) сформировал технический комитет X3J11 для создания стандарта языка C (чтобы «обеспечить недвусмысленное и машинно-независимое определение языка»). В 1989 стандарт был утвержден. ANSI скооперировался с ISO (Международной Организацией Стандартов), чтобы стандартизовать C в международном масштабе; совместный стандарт был опубликован в 1990 году и назван ANSI/ISO 9899:1990. Этот стандарт совершенствуется до сих пор и поддерживается большинством фирм разработчиков компиляторов.


Рождение С++

Бьерн Страуструп высвободил объектно-ориентированный потенциал С путем перенесения возможностей классов Simula 67 в С. Первоначально новый язык носил имя «С с классами» и только потом стал называться C++. Язык C++ достиг популярности, будучи разработанным в Bell Labs, позже он был перенесен в другие индустрии и корпорации. Сегодня это один из наиболее популярных (и авторитетных) языков программирования в мире. C++ наследует как хорошие, так и плохие стороны С.


Откровения Бьерна Страуструп

Бьерн Страуструп: «Я придумал C++, записал его первоначальное определение и выполнил первую реализацию. Я выбрал и сформулировал критерии проектирования C++, разработал его основные возможности и отвечал за судьбу предложений по расширению языка в комитете по стандартизации C++«, — пишет автор самого популярного языка программирования. — «Язык C++ многим обязан языку C, и язык C остается подмножеством языка C++ (но в C++ устранены несколько серьезных брешей системы типов C). Я также сохранил средства C, которые являются достаточно низкоуровневыми, чтобы справляться с самыми критическими системными задачами. Язык C, в свою очередь многим обязан своему предшественнику, BCPL; кстати, стиль комментариев // был взят в C++ из BCPL. Другим основным источником вдохновения был язык Simula67. Концепция классов (с производными классами и виртуальными функциями) была позаимствована из него. Средства перегрузки операторов и возможность помещения объявлений в любом месте, где может быть записана инструкция, напоминает Algol68. «


Почему С++

Название C++ выдумал Рик Масситти. Название указывает на эволюционную природу перехода к нему от C. «++» — это операция приращения в C. Чуть более короткое имя C+ является синтаксической ошибкой; кроме того, оно уже было использовано как имя совсем другого языка. Знатоки семантики C находят, что C++ хуже, чем ++C. Названия D язык не получил, поскольку он является расширением C и в нем не делается попыток исцеляться от проблем путем выбрасывания различных особенностей.


Зачем был нужен С++

Изначально язык программирования C++ был разработан, чтобы автору и его друзьям не приходилось программировать на ассемблере, C или других современных языках высокого уровня. Основным его предназначением было сделать написание хороших программ более простым и приятным для отдельного программиста. Плана разработки C++ на бумаге никогда не было; проект, документация и реализация двигались одновременно. Разумеется, внешний интерфейс C++ был написан на C++. Никогда не существовало «Проекта C++» и «Комитета по разработке C++». Поэтому C++ развивался и продолжает развиваться во всех направлениях, чтобы справляться со сложностями, с которыми сталкиваются пользователи, а также в процессе дискуссий автора с его друзьями и коллегами.


Настоящий объектно-ориентированный C++

В языке С++ полностью поддерживаются принципы объектно-ориентированного программирования, включая три кита, на которых оно стоит: инкапсуляцию, наследование и полиморфизм. Инкапсуляция в С++ поддерживается посредством создания нестандартных (пользовательских) типов данных, называемых классами. Язык С++ поддерживает наследование. Это значит, что можно объявить новый тип данных (класс), который является расширением существующего.

Хотя язык программирования С++ справедливо называют продолжением С и любая работоспособная программа на языке С будет поддерживаться компилятором С++, при переходе от С к С++ был сделан весьма существенный скачок. Язык С++ выигрывал от своего родства с языком С в течение многих лет, поскольку многие программисты обнаружили, что для того, чтобы в полной мере воспользоваться преимуществами языка С++, им нужно отказаться от некоторых своих прежних знаний и приобрести новые, а именно: изучить новый способ концептуальности и решения проблем программирования. Перед тем как начинать осваивать С++, Страуструп и большинство других программистов, использующих С++ считают изучение языка С необязательным.

Язык программирования C++ в настоящее время считается господствующим языком, используемым для разработки коммерческих продуктов, 90% игр пишутся на С++ с применением DirectX.


Литература


Источники :

  • Х.М.Дейтел, П.Дж.Дейтел «Как программировать на C++»
  • Бьерн Страуструп «Язык программирования C++. 3-е издание.»
  • Симон Робинсон, Олли Корнес, Джей Глинн и др. «C# для профессионалов»
  • Джесс Либерти «Освой самостоятельно С++ за 21 день»
  • Станислав Горнаков «DirectX, уроки программирования на С++»

52775
14 декабря 2019 г.

Развитие компьютерных языков и программистов

Обзор

Одной из основных сильных сторон современного электронного цифрового компьютера является его способность быть запрограммированным для выполнения широкого спектра полезных и разрозненных функций. Первоначально разработанные как «супер-калькуляторы» для ограниченного использования в военных и научных вычислениях, компьютеры стали одной из самых распространенных технологий в обществе конца двадцатого века. Что делает компьютер таким мощным, так это его огромная гибкость: при наличии соответствующего программного обеспечения недорогой и массовый компьютерный чип может имитировать функции многих более дорогих устройств специального назначения.Замечательный успех компьютерной индустрии в Соединенных Штатах во многом объясняется способностью программистов разрабатывать программные приложения, которые нравятся широкому кругу корпоративных потребителей. Краеугольным камнем этой «программной революции» являются языки компьютерного программирования, используемые для создания универсального и эффективного программного обеспечения.

Предпосылки

Первые электронные цифровые компьютеры были спроектированы и сконструированы для военных или научных целей и, как правило, были большими, дорогими и рассчитанными на скорость и надежность.
а не простота использования.Программисты использовали числовые машинные коды для прямой связи с аппаратным обеспечением компьютера, чтобы достичь высокого уровня производительности, необходимого для повторяющихся научных вычислений. Поскольку затраты на программирование составляли лишь небольшой процент от общих затрат на владение этими компьютерами и их эксплуатацию, а объем разработки программного обеспечения в этот период был небольшим, стимулов к разработке дорогостоящих инструментов программирования было мало. Ряд организаций разработали программы на ассемблере, которые позволяли программистам писать программы с использованием упрощенных мнемонических кодов вместо эзотерического машинного языка, но по большей части программирование в начале 1950-х годов требовало обширных знаний и пристального внимания к деталям.Отдельные программисты часто зарабатывали себе репутацию за свой уникальный стиль и демонстрацию виртуозной техники программирования.

По мере того, как коммерческие компьютеры становились менее дорогими и все более широко использовались корпорациями, заинтересованными больше в обработке данных, чем в вычислении чисел, потребность в новых методах и технологиях программирования становилась все более очевидной. Производители компьютеров хотели сделать свои устройства доступными для самого широкого круга корпоративных потребителей. Программисты надеялись избавиться от утомительной канцелярской работы, связанной с машинным кодом и языком ассемблера.Корпоративные менеджеры хотели освободиться от зависимости от внешне эксцентричных программистов. Появился целый ряд новых продуктов, призванных сделать программирование менее сложным и трудоемким. Однако большинство из этих так называемых «автокодировщиков» просто заменили один запутанный и непонятный набор мнемонических сокращений на другой. По мере того, как проекты программирования становились более крупными и сложными, затраты на разработку программного обеспечения резко увеличивались; к середине 1950-х годов было подсчитано, что на программирование и отладку приходилось до трех четвертей стоимости эксплуатации компьютера.

Первый широко используемый язык программирования, названный FORTRAN (FORmula TRANslator), был разработан корпорацией IBM в ответ на рост затрат на разработку программного обеспечения. Глава группы разработчиков FORTRAN, математик Джон Бэкус (1924-), был откровенен в своем убеждении, что программирование в 1950-х годах было «черным искусством», не имевшим общепринятых стандартов и принципов и чрезмерно зависящим от частных методов и методик отдельного программиста. изобретения «. FORTRAN позволял программистам описывать свои программы, используя относительно понятные алгебраические выражения, а не зашифрованный ассемблерный код.Компилятор FORTRAN преобразовал эти алгебраические выражения в код машинного уровня, необходимый для базового оборудования. Одной из основных причин широкого распространения FORTRAN была его способность создавать эффективный машинный код, который работал бы почти так же быстро, как код, созданный опытными программистами. Во-вторых, это было поддержано IBM, к тому времени гигантом отрасли. FORTRAN был важным компонентом успешной линейки компьютеров IBM Model 704, и к концу 1960-х годов версия FORTAN была доступна почти на всех компьютерах, когда-либо созданных до этого момента.Однако

FORTRAN ни в коем случае не был единственным языком программирования высокого уровня, разработанным в 1950-х годах. К концу десятилетия распространение новых компьютеров и инструментов программирования создало настоящую Вавилонскую башню из конкурирующих языков и диалектов. Потребность в универсальном языке программирования возникла среди групп пользователей и отраслевых консорциумов. В 1957 году Ассоциация вычислительной техники (ACM) начала работу над универсальным языком программирования под названием ALGOL (ALGOrithmic Language).Хотя Алгол никогда не был широко принят за пределами академических кругов, усилия ACM подчеркнули преимущества языковой стандартизации. В 1959 году влиятельная группа правительственных, военных и отраслевых лидеров провела встречу в Пентагоне, чтобы обсудить необходимость общего бизнес-ориентированного языка программирования. Результатом этой и других встреч стала разработка COBOL (COmmon Business Oriented Language). COBOL быстро стал де-факто стандартом в бизнесе и оборонном сообществе, в основном в результате постановления Министерства обороны 1960 года о том, что военные больше не будут покупать или сдавать в аренду любой компьютер, на котором нет компилятора COBOL.Несмотря на многие изменения, произошедшие в компьютерах и технологиях программирования с начала 1960-х годов, COBOL остается наиболее широко используемым языком программирования в мире.

Те же самые разработки в компьютерной индустрии, которые создали потребность в новых языках программирования, также привели к спросу на большее количество более опытных программистов. К концу 1950-х годов в ряде университетов были созданы программы по информатике и компьютерной инженерии. В Дартмутском университете в Нью-Гэмпшире профессора Джон Кемени (1926-1992) и Томас Курц (1928-) начали работу над тем, что должно было стать
язык программирования BASIC (Универсальный символьный код инструкций для начинающих).Их цель состояла в том, чтобы создать язык, который могли бы легко выучить студенты без технических специальностей. BASIC был частью целой системы технологий (включая компьютеры с разделением времени и телетайпов), разработанных, чтобы позволить студентам Дартмута непосредственный и личный доступ к компьютерам. Хотя БЕЙСИК не был таким быстрым и мощным, как ФОРТРАН или КОБОЛ, тем не менее, он был полезным и способным языком, особенно для конкретных педагогических целей, для которых его разработали Кемени и Курц. Миллионы студентов, которые иначе были бы напуганы программированием, узнали основы вычислений, познакомившись с BASIC.

К концу 1960-х в компьютерной индустрии назревал «программный кризис». Несмотря на широкое распространение стандартизированных языков, таких как FORTRAN и COBOL, затраты на разработку программного обеспечения продолжали стремительно расти, а многочисленные крупные программные проекты либо превышали свой бюджет, либо полностью проваливались. Ряд связанных событий способствовали нарастанию ощущения кризиса: увеличение размера и сложности программных приложений; наплыв неопытных и плохо обученных программистов; и неспособность руководителей корпораций признать, что программирование — это очень творческая деятельность, которую трудно предсказать и контролировать с помощью традиционных методов управления.Какими бы ни были основные причины, «программный кризис» вызвал новый интерес к разработке языков программирования, которые ускорили бы разработку и способствовали бы хорошей практике программирования. Язык программирования PASCAL, названный в честь французского математика и философа семнадцатого века Блеза Паскаля (1623–1662), особенно подходил для подхода «структурного программирования» к разработке программного обеспечения. Впервые разработанный в 1970 году, PASCAL был широко принят академическим сообществом как идеальный инструмент для обучения правильной технике работы начинающих компьютерных ученых и программистов.

По мере расширения индустрии коммерческих вычислений и развития новых компьютерных технологий потребности сообщества программистов развивались соответствующим образом. В 1965 году Digital Equipment Corporation (DEC) представила новый класс относительно небольших и недорогих «мини-компьютеров». Эти компьютеры были менее мощными, чем традиционные мэйнфреймы, но были доступны для более широкого круга организаций и были чрезвычайно популярны. Многие из этих мини-компьютеров не обладали ресурсами, необходимыми для языков с высокой структурой, таких как PASCAL.Инновационные компьютерные ученые разработали языки, специально подходящие для этой новой технологии. Кен Томпсон (1943-) и Денис Ричи, два исследователя из Bell Telephone Laboratories в Нью-Джерси, создали операционную систему UNIX и язык программирования C на мини-компьютере DEC PDP-8. Поскольку операционная система UNIX была написана на C, успех одной способствовал принятию другой. Язык C и его последователи (C + и C ++) являются наиболее широко используемыми языками программирования для разработки программного обеспечения для рабочих станций и персональных компьютеров.

Impact

Развитие полезных и эффективных языков программирования оказало огромное влияние на принятие компьютерных технологий в современном обществе. В начале 1950-х годов для многих корпоративных наблюдателей было неясно, для чего нужны компьютеры и как их лучше всего использовать. Стандартизированные языки программирования, такие как FORTRAN и COBOL, позволили этим компаниям делиться своим программным обеспечением и опытом с другими, тем самым способствуя распространению информации, персонала и методов.Каждый из многих языков программирования, разработанных в этот период, служил разным целям: FORTRAN позволил ученым более эффективно использовать компьютеры; COBOL предоставил функции, характерные для вычислительных потребностей предприятий; BASIC и PASCAL позволили университетам подготовить новое поколение программистов и руководителей, разбирающихся в компьютерах. Переход от машинного кода и языка ассемблера к более алгебраическим и англоязычным операторам расширил базу пользователей компьютеров и сделал компьютеры более доступными и понятными для широкой публики.Наконец, накопление опыта и методов программирования позволило продолжить разработку более сложного и творческого программного обеспечения.

НАТАН Л. ЭНСМЕНГЕР

Дополнительная литература

Книги

Кэмпбелл-Келли, Мартин и Уильям Аспрей. Компьютер: История информационной машины. New York: Basic Books, 1996.

Ceruzzi, Paul. История современных вычислений. Кембридж, Массачусетс: MIT Press, 1998.

Крафт, Филип. Программисты и менеджеры: Routinization компьютерных программистов в Соединенных Штатах. Нью-Йорк: Springer-Verlag, 1977.

Sammet, Jean. Языки программирования: история и основы. Englewood Cliffs, NJ: Prentice-Hall, 1969.

Weinberg, Gerald. Психология программирования. New York: Dorset House Publishing, 1998.

Wexelblat, Richard, ed. История языков программирования. Нью-Йорк: Academic Press, 1981.

Периодические статьи

Фриц, В. Барклей. «Женщины ENIAC». Анналы История вычислительной техники 18 (3): 13-23.

Наука и ее времена: понимание социальной значимости научных открытий

Краткая история ранних языков программирования | Автор Alex Moltzau 莫 战

Как рассказывала Линда Вайзер Фридман с самого начала и ближе к 90-м годам

От Бэббиджа к Вавилону и дальше — это статья, написанная Линдой Вайзер Фридман.Этот текст представляет собой резюме ее статьи, в которой рассматривается история языков программирования. Она описывает четыре «поколения» программного обеспечения, начиная с машинного кода и заканчивая различными языками, парадигмами и средами.

Согласно Фридману, в 90-х (на момент написания) некоторые из старейших языков программирования были самыми популярными. В частности, она упоминает ФОРТРАН и КОБОЛ. Она также утверждает, что:

«Изучать языки программирования высокого уровня, исследуя только состояние таких языков в том виде, в каком они существуют сегодня, было бы неполным.

Она задает вопрос.

  • Почему возникли языки высокого уровня?
  • Почему мы все еще не программируем машинным кодом?

Ранние языки программирования имеют большое влияние на более поздние. Многие языки программирования имеют похожие конструкции.

Возможно, важно изучить предыдущие языки.

Она ссылается на серию предыдущих исследований. Среди них Кнут, изучавший математические и числовые алгоритмы с древних времен до наших дней.От описания «статических функциональных отношений» (таких как уравнения в математике) до обозначений динамических процессов (алгоритмов).

«Часто, чтобы обозначить алгоритм как преобразование ввода-вывода, его просто выражают как y = f (x), где x — входная переменная, y — выходная переменная, а f — абстрактная (или «черный ящик»), алгоритм (возможно, числовой) ».

Она утверждает, что алгоритмы были «многословными» и «неточными» перед тем, как приступить к проверке раннего компьютерного оборудования и программного обеспечения.

Аналитическая машина

Считается, что самый ранний из известных компьютеров был разработан Чарльзом Бэббиджем для аналитической машины в 1834 году. Он был разработан для обеспечения изменяемой последовательности числовых операций и внутреннего хранения данных. Это не могло быть построено при его жизни, но его соратница леди Августа Ада, графиня Лавлейс (и дочь поэта лорда Байрона), кодировала программы для него.

Операции машинного кода на машине Бэббиджа имели вид:

  • V ~ × V2 = V3, с операциями (например,грамм. операция умножения) и переменной.
  • Использованы перфокарты (жаккарды).
  • Карты загружались в машину и работали с внутренними данными.
  • Внутри кондиционированы для условных «прыжков» (выполняемых физическим перепрыгиванием через карточки).

Леди Лавлейс, размышляющая о повторяющихся последовательностях операций, поэтому считается, что она внесла новшество в концепцию цикла или конструкции повторения.

Бэббиджа можно назвать первым компьютерным архитектором, а Лавлейс — первым компьютерным программистом.

EDVAC

Компьютер с хранимой программой был описан и реализован только в 1945 году. Это произошло с Университетом Пенсильвании Джона фон Неймана: «Первый проект отчета о EDVAC».

EDVAC (Электронный арифметический компьютер с дискретными переменными) описывает процессор, соединенный с первичной памятью.

Эта конфигурация стала известна как архитектура фон Неймана:

«… описывает конфигурацию, в которой процессор тесно связан с основным хранилищем, основное хранилище достаточно велико для хранения огромных объемов данных вместе с программным кодом и операциями. выполняются последовательно без параллелизма, который был необходим на более ранних машинах, чтобы противодействовать их чрезвычайно ограниченным возможностям хранения.”

Разработки аппаратного обеспечения

Фридман (1992) построил фрейм, чтобы помочь получить обзор развития аппаратного обеспечения. Это выглядит следующим образом:

Она описывает это как исторический обзор компьютерного оборудования от ранних экспериментальных проектов до проекта пятого поколения в Японии.

Первым электронным компьютером для коммерческого использования в списке является UNIVAC Remington Rand 1951 года. Первый был приобретен Департаментом переписи населения США.Это было основано на электронных лампах.

Более поздние компьютеры характеризовались новой и иной технологией:

  1. Транзисторы.
  2. Микросхемы.
  3. Масштабная интеграция.

Очевидно, в 1951 году с установкой UNIVAC было предсказано, что к 1975 году в США будет 12 компьютеров. Они были совершенно неправы. К 1975 году использовалось 155 000 компьютеров. К концу 1989 года эта цифра достигла 54 миллионов.

Фридман описывает поколения программного обеспечения в виде лестницы:

Модель Фридмана.

Фридман рассматривает программное обеспечение в четырех поколениях. По ее словам, это своего рода ступенька на «лестнице» между человеком и пользователем компьютера.

«Первое поколение компьютерного программного обеспечения — это эра программирования на машинном языке».

В 1940-х и начале 1950-х годов все кодирование выполнялось на машинном языке . Это означает собственный внутренний (двоичный) набор команд компьютера.

Машинное кодирование или «ручное кодирование» оставалось популярным еще долгое время.У каждой машины был свой встроенный код.

Каждая задача была написана «с нуля», без возможности обобщения.

«Тогда говорилось не о программировании, а о кодировании, а программисты были кодировщиками».

По словам Фридмана, слово «программист» возникло в Англии, оно пересекло Атлантический океан и перебралось в США в 1950-х годах, и к тому времени было более «престижно» быть программистом, чем кодировщиком.

В форме официального общения между членами общины было не так много.

Однако Ассоциация вычислительной техники (ACM) была образована в 1947 году, и журналы начали публиковаться несколько лет спустя.

Мало кто задумывался о праве собственности, потому что его трудно отнести к одному источнику.

Фридман говорит:

«В 1947 году произошло событие, которое представляет особый интерес для программистов и студентов, изучающих информатику. Грейс Мюррей Хоппер, исследуя, почему компьютер Mark I1 не работает должным образом, обнаружила в машине небольшую мертвую моль и удалила ее пинцетом.Бабочка вошла в ее бортовой журнал вместе с записью о происшествии для потомков. С тех пор вычислительные ошибки стали называть «ошибками», а процесс их поиска и устранения — «отладкой» ».

В качестве примечания, хотя автор утверждает, что в этом утверждении, похоже, есть несколько «ошибок» или ошибок.

Говард Эйкен предложил «кодировочную машину» для Mark III. При нажатии кнопки машинный код будет набран на бумажной ленте. Таким образом, кодировщику не придется запоминать множество сложных последовательностей двоичного кода.

Фридман описывает это как искру на пути ко второму поколению программного обеспечения.

Вспомогательные средства кодирования второго поколения, например, для специалистов по машинному кодированию.

Сюда входят различные средства автоматизации и сборщики. Время, «отмеченное многими первыми».

Фридман просит нас рассмотреть тогдашнюю культуру программирования или «кодирования» в свете появившихся нововведений:

«мы должны иметь в виду, во-первых, что мышление разработчиков программного обеспечения было таким, что все остальные чем ручное кодирование считалось неполноценным, и, во-вторых, эти программы на машинном языке, написанные вручную, на самом деле были очень сложными и запутанными и работали с меньшим объемом памяти, чем наши сложные программы сегодня.

Она также говорит, что скептицизм был оправдан, поскольку эти системы давали программы, которые были менее эффективными и более дорогостоящими, чем эквивалентные версии с ручным кодированием, созданные умными, изобретательными людьми-программистами.

Итак, в то время программисты не всегда программировали «с нуля». Многие скопировали бы участки кода вручную.

Копирование было чревато «ошибками транскрипции».

В 1949 году Джон Мочли предложил «Short-Order Code» или « Short Code » для BINAC (BINary Automatic Computer).Компьютер был построен Джоном Мочли и Дж. Преспером Эккертом, позже его выкупила компания Remington-Rand.

Short Code : был набором интерпретирующих подпрограмм, хранящихся в памяти. Short Code выполняется примерно в пятьдесят раз медленнее, чем эквивалентная программа , написанная вручную.

В 1950–1951 годах появилось множество искусственных машинных языков или «псевдокодов».

«В начале 1950-х годов генератор сортировки-слияния Бетти Холбертсон был первой попыткой использования компьютера для написания программ и вдохновил целую семью других генераторов программ.”

В 1951 году из Англии прибыл первый учебник по программированию. Он назывался «Подготовка программ для цифрового компьютера», автором которого был Уилкс, Уиллер и Гилл.

В нем обсуждалась «процедура сборки» со ссылкой на: «… фрагмент кода, который объединяет набор подпрограмм и выделяет память в виде блоков перемещаемых адресов, называемых« плавающими адресами »».

В 1951 году Грейс Мюррей Хоппер, работающая над UNIVAC I компании Remington-Rand, придумала то, что она назвала «подпрограммой компиляции », как акт перевода «псевдокода» в полный набор инструкций машинного языка.

В 1952 году Милли Косс выпустила «редактор редактирования », выполняющий арифметические операции и распечатывающий выходные данные, доступные для чтения менеджерам и другим людям.

Фридман описал разработку системы AUTOCODE в 1952 году Аликом Э. Гленни как ссылку на «третье поколение» программного обеспечения. Это был примитивный машинно-зависимый алгебраический компилятор , который переводил алгебраические выражения на машинный язык Manchester Mark I.

В 1945 году теоретический язык программирования был разработан в Fed.Республика Германия, автор Конрад Цузе, названный Plankalkul (programcalculus), хотя это оставалось незамеченным примерно до 1972 года.

В Италии докторская диссертация Коррадо Бома от 1951 года описывает систему, которая определяет каждое утверждение как частный случай назначенного утверждения, например S было бы эквивалентно «установить счетчик программы на значение переменной S».

Первым алгебраическим компилятором считается компьютер WHIRLWIND Массачусетского технологического института, разработанный Джеем Форрестером и Кеном Олсеном.Это был первый 16-битный миникомпьютер, способный выполнять параллельную обработку и вычисления в реальном времени. Он был продемонстрирован весной 1953 года и запущен в эксплуатацию в январе 1954 года.

В 1955 году команда программистов Грейс Мюррей Хоппе начала разрабатывать алгебраический язык программирования, использующий некоторые английские ключевые слова.

В 1957 году он был выпущен как MATH-MATIC и работал неэффективно. В 1957 году IBM наконец поставила компилятор для FORTRAN. Это было все более и более популярно в компьютерном сообществе.

В 1958 году был выпущен FLOW-MATIC, который стал важным фактором в последующем проектировании COBOL.

FORTRAN ( FORmula TRANslating System)

В 1954 году Джон Бэкус возглавил группу исследователей IBM (позже названную Programming Research Group) для проектирования и разработки автоматических переводчиков математических формул в машинный код IBM 704. Они приняли бы не что иное, как нечто столь же эффективное, как их написанные вручную аналоги. Их главной заботой была эффективность, поскольку, по словам Фридмана, это могло быть более воспринято сообществом программистов.Аспект языкового дизайна был решен быстро. Описано Фридманом: «… как рутинная работа, которая должна была быть завершена до того, как могла быть выполнена« настоящая »работа (дизайн компилятора)».

FORmula TRANslating System, или FORTRAN , была выпущена в 1954 году, и большая часть документа была посвящена обоснованию системы, включая оптимистичное ожидание того, что FORTRAN устранит кодирование и отладку.

В 1958 году были выпущены компиляторы FORTRAN для IBM 709 и 650; в 1960 для 1620 и 7070.Версии не обязательно были идентичны, и программа, написанная на одном компьютере, не обязательно давала такой же результат на другом.

В 1961 году компиляторы FORTRAN стали доступны для других компьютеров (UNIVAC, Remington-Rand LARC и ALTAC).

В 1964 году на рынке было более 40 различных компиляторов FORTRAN. Надо сказать, что это был не машинно-независимый язык, а компьютерный по-разному на разных компьютерах.

В 1958 году был выпущен FORTRAN II, за ним последовали FORTRAN III и FORTRAN IV в 1962 году.FORTRAN IV был стандартом для этого языка до тех пор, пока в 1978 году не был выпущен FORTRAN 77.

LISP (LISt Processor)

В 1956–1958 годах в Дартмуте Джоном Маккарти был разработан интерактивный прикладной язык.

В 1959 году это было позже реализовано в Массачусетском технологическом институте со справочным руководством, опубликованным в 1960 году.

LISP основан на лямбда-исчислении и, в отличие от других языков, был разработан для манипулирования символьными формулами. Фридман утверждает, что он стал «lingua franca» (средством общения) сообщества искусственного интеллекта.

Она перечисляет некоторые инновационные функции, а именно:

  • Функция как основная программная единица.
  • Список как основная структура данных.
  • Динамические структуры данных.
  • Средства для «вывоза мусора».
  • Использование символьных выражений вместо чисел.
  • Рекурсия.
  • Условное выражение как управляющие структуры.
  • Функция «eval» для интерактивной оценки операторов LISP.

АЛГОЛ (АЛГОРИФМИЧЕСКИЙ ЯЗЫК)

В 1958 году комитет провел собрание в Цюрихе, чтобы разработать универсальный язык программирования высокого уровня.В нем приняли участие европейские представители GAMM (Немецкая ассоциация прикладной математики и механики) и Ассоциации вычислительной техники. Одним из членов комитета был Джон Бэкус, возглавлявший группу разработчиков FORTRAN.

Одной из целей было облегчение общения и обмена в международном компьютерном сообществе наряду с практической целью принести компилятор в Европу (они все еще кодировали вручную). Одна из причин, по которой возникла потребность в новом языке, заключалась в том, что FORTRAN был проприетарным продуктом IBM.Поэтому переход на FORTRAN означал бы покупку только машин IBM, а IBM не желала доминировать в Европе.

Этот язык сначала был назван IAL (International Algebraic Language), а затем переименован в ALGOL (ALGOrithmic -Language). Первая версия была известна как АЛГОЛ 58.

Комитет снова встретился в Париже в 1960 году, чтобы улучшить язык и устранить недостатки.

«Влияние ALGOL60 на разработку языков программирования и на развитие информатики в целом было не менее чем глубоким.

Фридман перечисляет несколько инновационных функций:

  • BNF (нормальная форма Бэкуса), метаязык для определения языков программирования.
  • Язык программирования как объект изучения, а не просто средство достижения цели.
  • Используется как язык публикации алгоритмов.
  • Блочная структура и локализованные среды данных.
  • Вложение программных единиц.
  • Программный код произвольного формата.
  • Явное отклонение типов.
  • Распределение динамической памяти.
  • Параметр, передаваемый по значению и имени.
  • If / then / else и begin / end для разделения составных операторов.
  • Правила определения объема работ.
  • Объявление локальных переменных.
  • Параметры, передаваемые по имени, значению или ссылке.

COBOL (COmmonBusiness-Oriented-Language

В 1959 году другая группа собралась под надзором Министерства обороны США, чтобы обсудить разработку «общего» языка программирования.

«Эта группа, состоящая примерно из 40 членов, представляла производителей компьютеров и пользователей из промышленности, университетов и правительства и стала известна как Комитет CODASYL (COOnferenceon DAta SYstemsLanguages)».

И производители компьютеров, и правительство были заинтересованы в разработке языка, который мог бы работать на разных машинах.

В апреле 1960 года был создан язык под названием COBOL.

В отличие от FORTRAN, язык изначально был относительно «машинно-независимым».

Для многих программирование первого и второго поколения было плохо понимаемо большинством и считалось, как говорит Фридман, «черным искусством».

Важными нововведениями в COBOL по мнению Фридмана являются следующие:

  • Структура данных записи.
  • Описания файлов и средства управления.
  • Машинная независимость данных и описаний программ.
  • Равный акцент на описании данных в отделах данных и операциях в отделе процедур.
  • Влияние английского языка на использование глаголов, предложений, предложений, абзацев, разделов и разделов.
  • Относительно естественные языковые стили, включая шумовые слова для удобочитаемости.
  • Общие усилия по созданию языка, который производил бы самодокументирующийся программный код.

Они положили начало важной тенденции к языкам, ориентированным на данные. Фридман утверждает, что это привело к распространению систем управления базами данных, языков запросов, а также высокопроизводительных инструментов и сред программирования, ориентированных на базы данных.

Компиляторы COBOL были широко доступны, частично благодаря участию правительства:

«… Министерство обороны разослало строго сформулированное письмо всем производителям компьютеров, сообщая им, что, если они хотят продолжать продавать компьютеры Министерству обороны (крупнейший компьютерный подрядчик и спонсор исследовательских грантов), им лучше поставить компилятор COBOL ».

Фридман отмечает, что FORTRAN, COBOL и LISP были одними из наиболее часто используемых языков программирования на момент написания (прибл.1990).

Вавилон → 1960-е и 1970-е

«Десятилетия 1960-х и 1970-х годов стали свидетелями поистине удивительного распространения языков программирования. Именно этот центр активности Жан Самметен в 1969 году сравнил с библейской Вавилонской башней».

APL (язык программирования) . Он был определен и представлен публике в 1962 году в книге Кеннета Айверсона из Гарварда, который принимал участие в его разработке. Для этого требовалась специальная клавиатура, и она не получила широкого распространения.

СНОБОЛ (СТРИЖНО-ОРИЕНТИРОВАННЫЙ СИМВОЛИЧЕСКИЙ ЯЗЫК) . Впервые реализованный в 1963 году, он был разработан исследователями Bell Laboratories как язык обработки строк. Реализация на самом деле называлась SEXI (String EXpression Interpreter), но, по-видимому, считалась неприемлемой. Название языка было шутливым ударом по аббревиатурам: SNOBOL (StriNg OrientedsymBOlicLanguag). SNOBOL4 был выпущен в 1968 году и предназначен для компьютерного оборудования третьего поколения, он рассматривает шаблоны как объекты данных.Уникальной особенностью была возможность сопоставления строк и шаблонов.

BASIC (Универсальный символический учебный код для начинающих) . Код был запущен в 1964 году, а дизайн языка был предназначен для ознакомления студентов, не изучающих научные дисциплины, с вычислениями. Простота была выбрана выше эффективности компилятора, и были предоставлены четкие сообщения об ошибках.

PL / 1 (язык программирования / один) . Выпущенный в 1966 году, он задумывался как «язык, положивший конец всем языкам», но не такой популярный, как надеялась IBM.Компиляторы были неэффективными и ненадежными. Его критиковали как язык слишком много, поскольку он пытался включить все мыслимые элементы языкового дизайна.

Логотип . Разрабатывался в 1966–1968 гг. Разработан специально для обучения математике, используется экспериментально в классах. Логотип очень похож на LISP. Он включает в себя «черепаховую графику» для обучения детей геометрическим принципам.

FORTH (язык четвертого поколения). Чарльз Х. Мур хотел, чтобы язык был достаточно эффективным для научных и инженерных приложений, но при этом позволял более быстрое программирование с использованием меньшего количества строк кода.Кажется, две (очевидно) противоречащие друг другу цели дизайна. По словам Фридмана, сегодня он не может считаться языком четвертого поколения.

СИМУЛА ​​. Разработан в 1962 году Кристен Найгаард и Оле-Йоханом Далем в Норвежском вычислительном центре по контракту с Univac. Мотивирован желанием моделировать приложения — методика исследования операций, успешно применяемая в различных областях. Этот язык представил «концепцию класса», важную абстракцию для объектно-ориентированного программирования.

Паскаль (назван в честь французского философа и математика 17 века Блеза Паскаля) . Версия ALGOL68 (от ALGOL60) не пользовалась популярностью, так как была излишне большой и неудобной. Один из «несогласных» Никлаус Вирт разработал Паскаль, который был впервые реализован в 1970 году. Фридман утверждает, что Паскаль, предназначенный для использования в образовании, выделялся: «… в противовес тенденции». Тенденция усложнения языка функциями, чтобы ни один пользователь не мог ожидать, что узнает их все.

С .Кеннет Томпсон и Деннис Ритчи разработали C для кодирования подпрограмм в операционной системе UNIX. C был расширением B (также разработанным Томпсоном), основанным на более раннем языке BCPL. C создал понятие портативной операционной системы. Фридман утверждает, что сжатый синтаксис затрудняет чтение, понимание, отладку и сопровождение программ на языке C.

Modula-2 (MODUlar LAnguage / два). Потомок Паскаля, предназначенный для больших систем. Модуль облегчает обмен информацией, инкапсулируя код в четко очерченные части.

Ада . Предложенный в 1980 году и стандартизированный в 1983 году, он имел те же цели, что и PL / 1 (язык, чтобы положить конец всем языкам), и такой же успех.

После объявления FORTRAN в отчете в 1954 году было множество языков, которые пытались: «… приручить электронный компьютер для высокоуровневого использования людьми во всех областях применения».

Фридман любезно нарисовал модель некоторых влияний между разными языками:

Модель Фридмана

«Компьютерная архитектура типа фон Неймана, служащая катализатором для поколения языков программирования, может также , похоже, мы виноваты в значительной степени в той степени застоя, которую мы наблюдали в концептуальном развитии технологии языков программирования.

Фридман имеет в виду сохраненную программу в ячейках памяти с одним счетчиком в потоке инструкций последовательности. Языки программирования, основанные на этой предшествующей парадигме (процедурная), архитектура обычно бывает:

  1. Операторно-ориентированными (при условии последовательного выполнения ограниченного числа операций).
  2. Состоит из огромного количества строк кода. Отладка трудна и длительна.
  3. Техническое обслуживание требует много времени и средств.

Фридман утверждает, что следующая парадигма является деклеративной:

«Язык четвертого поколения является декларативным, то есть его инструкции компьютеру сосредоточены больше на том, что должно быть сделано, а не на подробном описании того, как это делать».

Четвертое поколение стремится оптимизировать человеческий труд по сравнению с компьютерным временем.

Часто предназначено для нетехнических пользователей в определенной области применения.

Некоторые из тенденций, согласно Фридману:

  • Декларативный язык.
  • Пакетное программное обеспечение.
  • Интегрированные пакеты.
  • Удобная интерактивная среда.
  • Языки запросов.
  • Высокопроизводительные инструменты программирования.
  • Интеграция языков.
  • Инструменты программирования (редактор, компоновщик, переводчики, обработчик файлов и пользовательский интерфейс в единой интерактивной системе).

Она отмечает, что не все системы являются непроцедурными, и классификация произвольна.

В 1961 году статистический пакет BMD (BioMeDicalpackage) был разработан в Калифорнийском университете в Беркли и реализован в FORTRAN на IBM 7090.

В 1967 году Артур С. Коуч разработал DATATEXT в Гарвардском университете, предназначенный для социологов.

PROLOG (Программирование в LOGic). Реализовано в 1972 году на АЛГОЛ-W для обработки естественного языка. С 1981 года он стал ассоциироваться с японским проектом «Пятое поколение».

OPS (Официальная производственная система) . Производственная система или язык на основе правил, используемый в области искусственного интеллекта. OPS5 выпущен в 1977 году.

Smalltalk .Разработан и реализован в исследовательском центре Xerox в Пало-Альто (PARC) как программный компонент: «Легендарный Dynabook Алана Кея, персональный компьютер размером с ноутбук для нетехнического пользователя». Среда была важна: мышь для выбора и наведения; графические меню пользователя и т. д. Стив Джобс использовал этот подход с операционной системой Apple Computers Lisa и Macintosh.

Языки запросов . Созданные для того, чтобы сделать базы данных доступными для людей с минимальным обучением, языки запросов были разработаны так, чтобы быть удобными для пользователя.SQL был разработан для SystemsR и нескольких других способов запроса. SQL был разработан IBM и продан в 1979 году Oracle.

Фридман утверждает:

«Высокопроизводительный инструмент четвертого поколения в значительной степени непроцедурен, удобен для пользователя и ориентирован на решение проблем».

Кроме того, она говорит, что эти системы были сконцентрированы на базе данных и включают компоненты системы управления базами данных.

Программное обеспечение началось с того, что люди были вынуждены «думать» в коде для конкретной машины.

На момент написания статьи Фридман уже утверждал, что компьютеры могут «думать» или действовать до некоторой степени как люди.

Статья Линды Вайзер Фридман — увлекательное чтение, и я, конечно, рекомендую вам прочитать ее полностью, а не мое ограниченное резюме.

Надеюсь, вам понравилась эта статья!

Развитие компьютерных языков (инфографика)

Этот сайт может получать партнерские комиссии за ссылки на этой странице. Условия эксплуатации.

Языки программирования, хотите верьте, хотите нет, существуют более 200 лет с момента изобретения жаккардового ткацкого станка, программируемого на перфокартах.Это не был язык программирования в современном понимании — не было вычислений и логики — но он запустил каскад, который в конечном итоге привел к аналитической машине Чарльза Бэббиджа и деконструкции Ады Лавлейс в 1842 году, которая привела к первой компьютерной программе. .

Однако прошло целых 100 лет, прежде чем появились первые электрические программируемые компьютеры. Машинно-ориентированный ассемблер в 1940-х годах был, вероятно, первым (смутно) понятным для человека языком программирования, но к 1950-м годам компьютерные инженеры поняли, что язык ассемблера был слишком трудоемким и подверженным ошибкам, чтобы создавать из него целые системы — и, таким образом, в 1955 году родился первый современный язык программирования: FORTRAN (FORmula TRANslator).LISP (LISt Processor), ALGOL (ALGOrithmic Language) и COBOL (COmmon Business Oriented Language) появятся в ближайшие несколько лет — и, как говорится, остальное уже история. Сегодня почти каждый язык является производным от одного из этих первых четырех языков — и действительно, FORTRAN, LISP и COBOL по-прежнему активно используются крупными и неповоротливыми учреждениями, такими как Национальная метеорологическая служба и Почтовая служба США.

К 1964 году был изобретен BASIC, а затем в 1969 году был выпущен C. Известно, что Unix был переписан на C — первую крупную ОС, которая не была написана на языке ассемблера — и сегодня Linux почти полностью написан на C, и в Windows, и в Mac OS X большая часть кода написана на C.

Для остальной части истории современных языков программирования — потому что C был действительно только началом! — ознакомьтесь с инфографикой ниже. Вы можете щелкнуть по нему, чтобы увеличить.

Инфографика через Rackspace

Подробнее об истории языков программирования

Краткая история программирования

Эта записка представляет собой краткую историю развития компьютеров и языков программирования и их взаимодействия с быстрым развитием естественных наук в 20 веке.

Глоссарий программирования

Следующая таблица содержит некоторые фразы технического программирования, которые часто используются и слышны в области информатики и программирования, с которыми вам также необходимо ознакомиться.

Таблица 1. Основные общеупотребительные программные фразы и ключевые слова, обсуждаемые в этой заметке. Слова, выделенные жирным шрифтом в столбце описания, обозначают ключевые слова, для которых в этой таблице приведены собственные описания.
Выражение Описание
алгоритм Общий метод решения класса задач.
ошибка Ошибка в программе , которую необходимо устранить для успешного выполнения программы.
составной язык Язык программирования, программы которого должны быть скомпилированы компилятором для запуска.
составитель Программное обеспечение, которое переводит всю программу высокого уровня на язык более низкого уровня, чтобы сделать ее исполняемой .
отладка Процесс поиска и устранения ошибок любого типа в программе.
исключение Альтернативное имя для ошибки времени выполнения в программе.
исполняемый файл Объектный код , готовый к выполнению. Обычно имеет расширение файла .exe или .out или вообще не имеет расширения.
формальный язык Язык, специально разработанный для определенных целей, который, в отличие от естественных языков , следует строгим стандартам.
язык высокого уровня Язык программирования (например,g., MATLAB, Python, Fortran, Java и т. д.), который имеет высокий уровень абстракции от базового оборудования.
устный перевод Язык программирования, операторы которого построчно интерпретируются интерпретатором и немедленно выполняются.
язык низкого уровня Язык программирования, который имеет низкий уровень абстракции от компьютерного оборудования и архитектуры, например ассемблер.Очень близко к машинному коду.
естественный язык Язык, который развивается естественным путем и имеет более свободный синтаксис , правила и стандарты по сравнению с формальными языками .
Код объекта Вывод компилятора после перевода программы.
разбор Чтение и изучение файла / программы и анализ синтаксической структуры файла / программы.
переносимость Способность программы исполняться на более чем одном типе компьютерной архитектуры без изменения кода.
решение проблем Процесс формулирования проблемы и поиска и выражения ее решения.
программа Набор инструкций в, которые вместе определяют алгоритм вычисления.
ошибка времени выполнения Ошибка, которая не возникает и приводит к остановке программы до тех пор, пока программа не начнет выполняться.
скрипт Программа на интерпретируемом языке , сохраненная в файле.
семантическая ошибка Тип ошибки в программе, из-за которой программа делает что-то не то, что было задумано.Выявление этих ошибок может быть очень сложным.
семантика Смысл программы.
исходный код Программа на скомпилированном языке высокого уровня до компиляции компилятором .
синтаксическая ошибка Тип ошибки в программе, которая нарушает стандартный синтаксис языка программирования, и, следовательно, программа не может быть интерпретирована или скомпилирована, пока синтаксическая ошибка не будет устранена.
синтаксис Структура программы.
жетон Один из основных элементов синтаксической структуры программы, по аналогии с словом в естественном языке .

Рост машин

Сразу после Первой мировой войны и во время Второй мировой войны многие области науки и техники стали свидетелями быстрого роста.В частности, две области математических и физических наук, , математическое программирование, (терминология, обычно используемая вместо математической оптимизации) (не путать с компьютерным программированием!) И методы Монте-Карло, стали свидетелями быстрого экспоненциального роста как в теории, так и в практических приложениях. . Параллельно с прогрессом в естественных науках в годы Второй мировой войны начала развиваться новая область науки и техники, информатика, частично в ответ на нужды войны, но в основном в ответ на экспоненциальный рост естественные науки и инженерия в послевоенную эпоху.

График относительной частоты употребления слов, иллюстрирующий экспоненциальный рост компьютерных технологий в середине 20-го века, а также разработки в области детерминированных и стохастических методов оптимизации, которые в конечном итоге привели к появлению компьютерного моделирования в качестве третьего столпа науки . Прогресс в вычислительных методах и технологиях также привел к постепенной популярности байесовских методов в математическом моделировании к концу 20-го века и появлению важного подполя вычислительного моделирования, ныне известного как квантификация неопределенности.Обратите внимание, что линейное поведение с положительным наклоном на этом полулогарифмическом графике указывает на экспоненциальный рост.

История компьютерного программирования, вероятно, начинается с разработки первого компьютера ENIAC ( Electronic Numerical Integrator And Computer ), одного из первых электронных компьютеров общего назначения.

Диаграмма, представляющая базовую структуру каждого цифрового устройства, в первую очередь настольных компьютеров.

Как выразить алгоритмы на машинном языке?

Чтобы ответить на этот вопрос, мы должны сначала понять, что все человеческие знания можно разделить на два класса :

  • декларативная и
  • императивный (процедурный).

Как следует из названия, декларативные знания включают утверждения фактов . Например,

  • J — десятая буква алфавита, или
  • Вашингтон — столица США, или
  • $ x $ — это квадратный корень только из $ y $ и только если $ x * x = y $,

все декларативные заявления. Напротив, императивное знание — это , как чего-то достичь, , или, по сути, рецепт того, как что-то делать, , известный как алгоритм в научной терминологии.Чтобы компьютер мог достичь определенной вычислительной цели, ему необходимо дать набор задач, которые в совокупности называются алгоритмом . Например, большинство калькуляторов содержат довольно сложный алгоритм вычисления квадратного корня из заданного входного числа, например, следующий:

Как видно, алгоритм имеет начало , управление потоком и остановку . Это основные элементы алгоритма. В начале 20 века алгоритмы нужно было физически и механически реализовать в компьютерах.Поэтому самые ранние вычислительные машины часто назывались компьютерами с фиксированной программой . Это означает, что они могли выполнять только те алгоритмы, для которых они были физически подключены и построены. Примером таких машин является ENIAC. Перепрограммирование таких компьютеров, если это вообще возможно, — трудоемкий процесс, начинающийся с блок-схем и бумажных заметок, за которым следуют подробные инженерные проекты, а затем часто трудоемкий процесс физического перенастройки и восстановления машины.Например, настройка программы на ENIAC и запуск ее может занять почти месяц.

Портреты трех из множества гигантов, участвовавших в создании и использовании первого цифрового компьютера ENIAC производства США и первых компьютерных симуляторов в истории человечества.

Даже в наши дни некоторые очень простые компьютеры все еще используют эту конструкцию либо для простоты, либо для целей обучения. Например, настольный калькулятор (в принципе) представляет собой компьютер с фиксированной программой. Он может выполнять основную математику, но его нельзя использовать в качестве текстового процессора или игровой консоли.Изменение программы машины с фиксированной программой требует изменения схемы, реструктуризации или перепроектирования машины. Самые ранние компьютеры были не столько «запрограммированы», сколько «спроектированы».

Прошло некоторое время, прежде чем первые компьютерные ученые заметили, что они могут проектировать компьютеры таким образом, чтобы сам алгоритм мог рассматриваться как часть входных данных для компьютера. Другими словами, можно было бы построить машину общего назначения, которая могла бы принимать любой компьютерный алгоритм в качестве входных данных и с учетом своего собственного базового набора операций (в основном, условное if, goto и доступ к памяти) могла бы запускать алгоритм.Такие машины, которые в настоящее время используются в повседневной жизни, называются компьютерами с сохраненными программами .

Поколения языков программирования

Изначально компьютеры должны были быть запрограммированы с помощью так называемого машинного кода или машинного языка, набора инструкций для центрального процессора (ЦП) компьютера, состоящего из длинной последовательности двоичных цифровых нулей и единиц. Любое взаимодействие с компьютерным оборудованием, даже в настоящее время, необходимо сначала преобразовать в машинный код, чтобы оно стало понятным для компьютерного оборудования.Однако кодирование на этом языке очень утомительно, требует много времени и не переносимо. Следовательно, сразу после разработки первого поколения компьютеров появилось и первое поколение языков программирования, в первую очередь, язык ассемблера в конце 1940-х годов, также известный как символический машинный код . С тех пор было разработано гораздо больше языков программирования, которые обеспечивают все более высокие уровни абстракции программирования, скрывая более сложные взаимодействия машинного кода с аппаратным обеспечением машины от внешнего программного обеспечения и пользователей.

В зависимости от уровня абстракции языки программирования делятся на разные поколения:

  • Первое поколение: Языки первого поколения, или машинные языки, являются языками компьютерного программирования самого низкого уровня, которые не обеспечивают абстракции при взаимодействии с компьютерным оборудованием. Эти языки напрямую взаимодействуют с компьютерным оборудованием, поэтому компилятору или ассемблеру не нужно интерпретировать эти языки для оборудования.
  • Второе поколение: Языки второго поколения находятся на более высоком уровне абстракции от машинного оборудования, что означает, что они требуют ассемблера для интерпретации кода для компьютерного оборудования. Наиболее заметным и, насколько я понимаю, единственным языком этого поколения является ассемблер, который является наиболее близким к компьютерному оборудованию компилируемым языком программирования.
  • Третье поколение: Языки третьего поколения или языки программирования высокого уровня обеспечивают еще более высокий уровень абстракции, чем языки второго поколения.Языки третьего поколения делают программирование практически независимым от платформы, а это означает, что содержимое кода не зависит напрямую от текущего используемого оборудования. Это помогает программисту больше сосредоточиться на интересующей проблеме, а не тратить время на изучение деталей конкретного компьютера и оборудования, которые используются в настоящее время. Примеры языков программирования третьего поколения: Fortran, ALGOL, COBOL, BASIC, C, C #, C ++, Java, Pascal
  • .

  • Четвертое поколение: Определение четвертого и последующих поколений не очень ясно, однако, как правило, это набор языков, которые обеспечивают еще более высокий уровень абстракции от оборудования и близость к пользователю (программисту).Некоторые известные примеры этой категории включают Python, Perl, Ruby, IDL, R, S.

Диаграмма, прослеживающая историю компьютерных языков на протяжении всей истории информатики.

Парадигмы языка программирования

Парадигмы программирования — это способ классификации языков программирования на основе их характеристик. Есть несколько парадигм программирования, таких как,

Схематическое изображение эволюции методов программирования.

Однако среди всех две последние парадигмы программирования являются наиболее важными и широко используются, чем другие. Исторически все языки программирования были императивными (или процедурными) , поскольку эта парадигма более интуитивно понятна человеческому разуму, да и тому, что делает компьютерное оборудование. Эти языки представляют собой удобочитаемые абстракции машинного кода.

Схематическое изображение структуры императивного (процедурного) программирования.

Императивные программы имеют структуру, как на рисунке выше, со следующими компонентами и правилами:

  • они должны содержать основную процедуру , которая определяет поток управления для программы, и,
  • они должны содержать набор функций, которые вызываются для выполнения определенных задач во время выполнения программы, и,
  • основные и подчиненные процедуры имеют иерархическую структуру, а,
  • компилируется исходный код для каждой процедуры, а,
  • : все скомпилированные процедуры и основная процедура связаны вместе с другими исходными кодами для создания полной исполняемой программы .

Спустя несколько десятилетий после того, как были разработаны первые императивные языки программирования, компьютерщики придумали альтернативную парадигму программирования, которая привела к более высоким уровням абстракции от машинного кода, однако могла также значительно снизить стоимость разработки кода и увеличить объем повторного использования кода от одной программы к другой. Эта парадигма программирования называется объектно-ориентированным программированием (ООП) , поскольку она рассматривает все в коде как объект .Затем каждый объект имеет тип или класс , которому он принадлежит. Например, можно определить класс, описывающий автомобиль в целом, который имеет несколько атрибутов , которые определяют его модель, марку, год, владельца,…, а также некоторые методы * , которые могут воздействовать на эти атрибуты и делать машина что-то делать,

Пример ООП-класса, описывающего автомобиль, с его атрибутами и методами.

Назначение языка программирования

Некоторые языки программирования были разработаны для определенного рынка.Например, в середине 20-го века было два известных языка Fortran для числовых и научных вычислений и COBOL для бизнес-задач. В области научных вычислений Fortran (FORmula TRANslation), впервые выпущенный в 1956 году, несомненно, является самым влиятельным языком программирования за всю историю человечества и старейшим языком программирования высокого уровня, который до сих пор активно используется в повседневной жизни. Среди всех языков программирования Fortran — единственный язык, ориентированный на ученых и инженеров как свою аудиторию.Вот история Fortran от его первоначальных разработчиков:

И, конечно, нет никаких сомнений в важности языка программирования общего назначения C и его потомка C ++. В частности, C ++ вырос из интереса к разработке языка, который является универсальным, то есть может использоваться для любых целей (бизнес, разработка ОС, научные вычисления), что также могло бы снизить затраты на сопровождение кода и разработку программного обеспечения.Вначале коды C ++ были довольно медленными и неэффективными, но в последнее время язык значительно догнал два языка высокопроизводительных вычислений (HPC) C и Fortran. Вот короткое видео, описывающее происхождение C ++ его собственным изобретателем:

И C, и C ++, а также Фортран по-прежнему широко используются каждый день. Эти три языка анонимно присутствуют в жизни практически всех людей каждый день.Например, все программное обеспечение для прогнозирования климата и погоды на сегодняшний день полагается на ядра HPC, которые были написаны и до сих пор написаны на Фортране. Точно так же почти каждая операционная система, которую вы используете на своих электронных устройствах, имеет некоторую связь с C или C ++.

Иногда наука действует как люди: она находит подходящего партнера (язык программирования), затем они процветают вместе, создают любовные истории и иногда вместе отказываются, с той лишь разницей, что в науке разрешена полигамия, как брак Фортрана с Aerospace. и физика плазмы:

Сюжет, иллюстрирующий совместную эволюцию двух самых сложных вычислительно-ресурсоемких областей науки (аэрокосмической и плазменной физики) с самым популярным высокопроизводительным языком научного программирования в истории человечества на сегодняшний день.Вертикальная ось представляет относительную частоту использования слов трех ключевых слов (Plasma, Aerospace и Fortran) во всем цифровом корпусе, а горизонтальная ось представляет год. Обратите внимание, что нисходящий наклон кривых в более поздние времена НЕ означает упадок этих областей науки или упадка Фортрана. Это просто означает, что они достигли своего экспоненциального пика роста в середине 1980-х годов и теперь неуклонно (линейно) расширяются, тогда как на другие новые области (такие как биоинформатика) каждый год ссылаются все чаще, чем на три вышеупомянутых ключевых слова. весь цифровой корпус.

Много раз на протяжении новейшей истории некоторые конкретные области науки способствовали развитию и популяризации некоторых языков компьютерного программирования и наоборот, в рамках положительной обратной связи. Молодая пара молодоженов, похоже, занимается биоинформатикой и питоном, и оба эти направления на сегодняшний день, похоже, процветают:

Сюжет, иллюстрирующий совместную эволюцию и процветание области биоинформатики с популярным языком программирования Python. Вертикальная ось представляет относительную частоту употребления слов двумя ключевыми словами (биоинформатика и Python) во всем цифровом корпусе, а горизонтальная ось представляет год.

Иногда язык программирования сочетается с определенной областью науки и процветает в течение нескольких лет, но вскоре его заменяют более молодым, более привлекательным языком программирования. Вероятно, именно это и произошло с совместной эволюцией Perl и биоинформатики, языка, который в начале нового тысячелетия постепенно был заменен Python, по крайней мере, в области биоинформатики.

Сюжет, иллюстрирующий эволюцию и неуклонное расширение языка программирования Perl и его постепенную замену Python в области биоинформатики.Вертикальная ось представляет относительную частоту использования слов трех ключевых слов (биоинформатика, Python и Perl) во всем цифровом корпусе, а горизонтальная ось представляет год.

Вот анимированная шкала популярности различных языков программирования в истории компьютерного программирования,


Обратите внимание, что упадок различных языков не обязательно означает отказ от языка.Некоторые языки являются предметно-ориентированными, например Fortran для числовых вычислений, и прекращают свой рост, как только достигают максимальной пользовательской базы со стороны общества (которое в основном состоит из ученых и инженеров). Популярность разных языков также является хорошим показателем широты применения языков. Например, в последние годы JavaScript пользовался огромным спросом и пользовался огромной популярностью из-за чрезвычайно быстрого распространения Всемирной паутины.

языков программирования за годы

С момента изобретения в 1837 году аналитической машины Чарльза Бэббиджа компьютерам всегда были нужны инструкции для выполнения задач — инструкции, которые приходят в форме языков программирования.Начиная более 150 лет назад с алгоритма перевода Ады Лавлейс, в этих языках всегда одно неизменное; они постоянно развиваются. Постоянно появляются новые и лучшие функции, и в результате появляется ошеломляющее количество языков кодирования, которые служат разным конкретным целям.

История языков программирования, в основе которой лежат десятилетия инноваций, составляет очень сложное генеалогическое древо. Эта шкала времени дает вам краткое представление о том, где сейчас кодирование, а также о том, как далеко оно продвинулось.

Поделитесь этим изображением на своем сайте | Скачать плакат для печати

 Языки программирования на протяжении многих лет


1950-е годы

  • Autocode (1952): Это семейство «упрощенных систем кодирования» было создано в 1950-х годах специально для использования с цифровыми компьютерами в университетах Манчестера, Кембриджа и Лондона.Многие считают, что это первый из когда-либо изобретенных комплементарных языков программирования, Autocode был разработан Аликом Гленни, чтобы быть понятным и высокоуровневым.
  • Fortran (1957): Fortran — это универсальный императивный язык программирования, подходящий для числовых вычислений и научных вычислений. Используемый более полувека Fortran был разработан IBM в 1957 году как для научных, так и для инженерных приложений.

1960-е

  • Algol 68 (1968): Сокращенно от Algorithmic Language 1968, Algol 68 был императивным языком программирования, разработанным как преемник Algol 60.Обладая более широкой сферой применения и строго определенным синтаксисом, этот язык был первым, который был полностью определен до того, как он был реализован.

1970-е годы

  • Pascal (1970): Названный в честь французского математика Блеза Паскаля, этот язык программирования был разработан Никлаусом Виртом. Паскаль позволил программистам определять свои собственные сложные типы данных и упростил создание динамических и рекурсивных структур данных, таких как списки, деревья и графики.
  • C (1972): Один из наиболее широко используемых языков программирования всех времен, C — это язык общего назначения, предназначенный для структурного программирования.Исходный текст программы на C имеет свободный формат, с точкой с запятой в качестве признака конца оператора и фигурными скобками для группировки блоков операторов.

1980-е годы

  • C ++ (1980): Этот язык программирования был разработан в основном для системного программирования, но был расширен для использования в настольных компьютерах, серверах и приложениях, критичных к производительности. Он унаследовал большую часть синтаксиса C и имеет императивные, объектно-ориентированные и общие функции программирования.
  • Perl (1987): Perl — это семейство языков программирования общего назначения высокого уровня.Он заимствует функции из других языков программирования, таких как C, AWK и sed. Первоначально единственной документацией по Perl была одна страница руководства, но она претерпела несколько исправлений и изменений.

1990-е годы

  • Python (1991): Философия дизайна Python сосредоточена на удобочитаемости. Его синтаксис, пришедший на смену языку ABC, позволяет программистам выражать концепции в меньшем количестве строк кода, чем это возможно в таких языках, как C ++ или Java.
  • Java (1995): Этот язык программирования был разработан так, чтобы иметь как можно меньше зависимостей реализации, что дает ему широкий спектр приложений. Он предназначен для того, чтобы разработчики приложений могли «написать один раз, работать где угодно», чтобы Java могла работать на любой платформе, которая ее поддерживает, без необходимости перекомпиляции.
  • PHP (1995): PHP — это язык сценариев на стороне сервера, используемый как для веб-разработки, так и для программирования общего назначения. Этот язык можно смешивать с кодом HTML или использовать в сочетании с механизмами создания шаблонов и веб-фреймворками.Изначально он не задумывался как язык программирования, но со временем он органично вырос.

2000-е годы

  • C # (2001): Этот многопарадигмальный язык программирования был разработан Microsoft в рамках платформы .NET. Он задумывался как простой, современный и объектно-ориентированный. Самая последняя версия C # была выпущена в 2012 году.
  • Visual Basic .NET (2001): Преемник исходного языка Visual Basic, Visual Basic .NET — это язык программирования высокого уровня, реализованный на платформе.NET Framework. Он использует операторы для определения действий и является одним из двух основных языков, ориентированных на платформу .NET, наряду с Visual C #.

2010-е-настоящее время

  • Swift (2014): Swift был создан Apple для разработки iOS и OS C. Он был представлен в 2014 году на Всемирной конференции разработчиков Apple. Разработанный для работы с фреймворками Apple Cocoa и Cocoa Touch, Swift должен быть более лаконичным и устойчивым к ошибочному коду.

Будущее программирования

Постоянное развитие языков программирования означает, что обученные программисты пользуются большим спросом.Ожидается, что рост занятости компьютерных программистов будет соответствовать среднему показателю по стране на уровне 8 процентов. Средняя зарплата этих технических специалистов впечатляет — более 74000 долларов в год. Спрос на разработчиков программного обеспечения еще выше, с прогнозируемым ростом на 22 процента к 2022 году. Что касается заработной платы, разработчики программного обеспечения могут рассчитывать на среднюю заработную плату в размере 93 350 долларов в год.

Научитесь кодировать

Заинтересованы в обучении кодированию? Гильдия программного обеспечения предлагает интенсивную, быстро развивающуюся программу, которая обучает навыкам, необходимым для работы в сфере программирования начального уровня.Сделайте следующий шаг и узнайте больше о нашей учебной программе для начинающих по кодированию сегодня!

Подать заявку сегодня

Программирование: краткая история компьютерных языков

Что такое компьютерное программирование

Действие или процесс написания компьютерных программ, то есть определение компьютерного программирования. К сожалению, это мало что нам говорит.

В более описательном смысле, программирование относится к описанию процессов и процедур путем разработки списка инструкций и команд для выполнения компьютером.Типы объектов, которыми манипулируют эти инструкции, — это числа, слова, звуки, изображения и тому подобное. Цель манипулирования этими объектами — заставить компьютер выполнить задачу и получить результаты, которые человеку было бы практически невозможно выполнить своевременно и точно. Задачи, которые мы поручаем компьютеру выполнять, обычно очень часто повторяются и могут включать миллионы вычислений за короткий период времени.

Создание компьютерной программы рассматривается во многих формах искусства, больше похоже на сочинение музыки или проектирование здания.Мое собственное мнение таково, что компьютерное программирование — это сочетание искусства и инженерии. Я бы не считал компьютерную программу функциональной и хорошо разработанной, если бы в ней не было необходимых инженерных решений, некоторых форм искусства и творчества.

Как была создана первая компьютерная программа?

Нам нужно вернуться в 19 век, когда Ада Лавлейс (1815 — 1852) написала ряд заметок после перевода мемуаров итальянского математика Луиджи Менабреа (1809 — 1896) об аналитической машине, показанной ниже, в течение девяти месяцев между 1842 и 1843 гг.

Аналитическая машина была изобретением английского математика и пионера компьютеров Чарльза Бэббиджа (1791–1871), это был высокотехнологичный механический калькулятор, который часто считался предшественником электронных вычислительных машин 20-го века.

Чарльз Бэббидж впервые задумал усовершенствованную вычислительную машину для вычисления и печати математических таблиц в 1812 году. Эта машина, задуманная Бэббиджем в 1834 году, была разработана для вычисления любых математических формул и обладания еще более высокими возможностями анализа, чем его первоначальная разностная машина. 1820-х гг.Единственная часть машины была завершена перед его смертью в 1871 году. Это часть фабрики с печатным механизмом. Бэббидж был также реформатором, математиком, философом, изобретателем и политическим экономистом.

Это была первая полностью автоматическая вычислительная машина. Британский пионер вычислительной техники Чарльз Бэббидж (1791–1871) впервые задумал усовершенствованную вычислительную машину для вычисления и печати математических таблиц в 1812 году. Эта машина, задуманная Бэббиджем в 1834 году, была разработана для вычисления любых математических формул и обладания еще более высокими полномочиями. анализа, чем его оригинальная разностная машина 1820-х годов.До его смерти в 1871 году была завершена только часть машины. Это часть фабрики с печатным механизмом. Бэббидж был также реформатором, математиком, философом, изобретателем и политическим экономистом.

Набор из заметок Ады Лавлейс был признан некоторыми историками первой компьютерной программой в мире, поскольку он содержал новаторское описание возможностей программирования машины, чтобы выйти за рамки обработки чисел и перейти к «вычислениям».

Кто был первым программистом?

Ада Лавлейс была английским математиком и писателем, в основном известная своей работой над аналитической машиной Чарльза Бэббиджа, как упоминалось выше.Ее заметки о двигателе включают то, что признано первым алгоритмом, предназначенным для выполнения машиной. Из-за этого ее часто считают первым программистом. Она также указала на то, что иначе можно было бы запомнить как первую компьютерную ошибку в уравнениях Бэббиджа, что также делает ее, возможно, первым отладчиком в мире.

Ада Лавлейс, первый программист — Фото: Альфред Эдвард Чэлон [общественное достояние], через Wikimedia Commons Компьютерный язык Ada, созданный от имени Министерства обороны США, был назван в честь Ады Лавлейс.

Какой был первый компьютерный язык?

Спустя 47 лет после того, как Ада Лавлейс аннотировала то, что считается первой компьютерной программой, Герман Холлерит (1860-1929) создал то, что считается первым компьютерным языком, когда он понял, что может кодировать информацию на перфокартах. Холлерит был американским статистиком и изобретателем. Он был основателем компании Tabulator Machine Company , которая позже объединилась в IBM.

Белл, К. М. (Чарльз Милтон), ок.1849-1893 гг., Фотограф. [Общественное достояние], через Wikimedia Commons 1890 — Герман Холлерит понял, что может кодировать информацию на перфокартах, когда заметил, что кондукторы поездов кодируют внешний вид держателей билетов на железнодорожных билетах, используя положение отверстий на билетах. Система перфокарт Холлерита использовалась для кодирования данных переписи 1890 года на перфокартах, что позволило сэкономить миллионы долларов и сэкономить много лет ручного труда. Он развил этот первоначальный успех и позже поставил оборудование для российской переписи 1897 года, нескольких европейских переписей и переписи 1900 года в Соединенных Штатах.Постепенно появились и бизнес-приложения его машин.

Его первое бизнес-приложение было на Центральной железной дороге Нью-Йорка. Он продолжал устанавливать системы на коммунальных предприятиях, в универмаге и на других железных дорогах; и это привело к разработке большего количества бизнес-приложений. Компания Холлерита была объединена в Computing-Tabulating-Recording Co. в 1911 году под руководством Томаса Дж. Уотсона-старшего, а 13 лет спустя она была переименована в IBM.

Алонзо Чёрч

1936 — В этом году Алонзо Чёрч (1903–1995) смог выразить лямбда-исчисление (также называемое λ-исчислением) формульным способом.Он определил кодировку натуральных чисел, названных числами Чёрча. Функция на натуральных числах называется λ-вычислимой, если соответствующая функция на числах Чёрча может быть представлена ​​членом λ-исчисления.

Swtpc6800 en: Пользователь: Swtpc6800 Майкл Холли (собственная работа) [общественное достояние], через Wikimedia Commons В 1940-х годах машинно-ориентированный язык ассемблера был, вероятно, первым (неопределенно) понятным для человека языком программирования. Ассемблер — это язык программирования низкого уровня, в котором существует очень сильное соответствие между языком и инструкциями машинного кода архитектуры.

1943 — 1945 — Первым языком программирования высокого уровня, который должен был быть разработан для компьютера, был Plankalkül , разработанный для немецкого Z3 Конрадом Цузе между 1943 и 1945 годами. Однако он не был реализован до 1998 и 2000 годов.

1949 — Сокращенный код Джона Мочли, предложенный в 1949 году, был одним из первых языков высокого уровня, когда-либо разработанных для электронного компьютера. [3] В отличие от машинного кода, операторы Short Code представляют математические выражения в понятной форме.Однако программу приходилось транслировать в машинный код каждый раз при запуске, что делало процесс медленнее, чем выполнение эквивалентного машинного кода.

1952 — Manchester Mark 1 запускал программы, написанные на Autocode с 1952 года.

В Манчестерском университете Алик Гленни разработал Autocode в начале 1950-х годов. Это язык программирования, он использовал компилятор для автоматического преобразования языка в машинный код. Первый код и компилятор были разработаны в 1952 году для компьютера Mark 1 в Манчестерском университете и считаются первым скомпилированным языком программирования высокого уровня.

К 1950-м годам компьютерные инженеры поняли, что язык ассемблера слишком сложен и подвержен ошибкам для построения целых систем, и так родился первый современный язык программирования.

Какой был первый современный компьютерный язык?

FORTRAN (1957) — Название FORTRAN происходит от системы « For mula Tran slating».

Джон Уорнер Бэкус (1924–2007), американский ученый-компьютерщик, в 1954 году собрал команду для определения и разработки Fortran для компьютера IBM 704.В 1957 году Бэкус и его команда создали Fortran. Компоненты были очень простыми и обеспечивали программисту низкоуровневый доступ к внутренностям компьютера. Фортран был первым языком программирования высокого уровня, получившим широкое распространение.

Джон Уорнер Бэкус был также изобретателем формы Бэкуса-Наура (BNF), широко используемой нотации для определения синтаксиса формального языка. Он также проводил исследования в области программирования на уровне функций и способствовал его популяризации.

Какие языки программирования были созданы после Фортрана?

LISP (1958) — Название LISP происходит от « Lis t P rocessing».Связанные списки — одна из основных структур данных Лиспа, а исходный код Лиспа сам состоит из списков.

Lisp был изобретен Джоном Маккарти в 1958 году, когда он работал в Массачусетском технологическом институте (MIT).

COBOL (1959) — Название COBOL происходит от «C o mmon B usiness- O riented L anguage». Cobol — это скомпилированный англоязычный компьютерный язык программирования, предназначенный для использования в бизнесе.

COBOL был разработан в 1959 году Конференцией по языкам систем данных (CODASYL) и частично основан на предыдущей работе по разработке языков программирования Грейс Хоппер, которую обычно называют «прародительницей COBOL»

ПАСКАЛЬ (1970) — Имя Паскаль дано в честь французского математика и философа Блеза Паскаля.

Pascal был разработан Никлаусом Виртом. Он швейцарский ученый-компьютерщик, наиболее известный благодаря разработке нескольких языков программирования, в том числе Pascal, и тем, что первым открыл несколько классических тем в программной инженерии.

Изначально Паскаль в основном, но не исключительно, предназначался для обучения студентов структурному программированию. Поколение студентов использовало Паскаль в качестве вводного языка на курсах бакалавриата.

C (1972) — Название было основано на более раннем языке, названном B, который в настоящее время почти исчез, будучи вытесненным языком C.

C был первоначально разработан Деннисом Ричи между 1969 и 1973 годами в AT&T Bell Labs и использовался для повторной реализации операционной системы Unix.

Многие более поздние языки прямо или косвенно заимствованы из C, включая C ++, D, Go, Rust, Java, JavaScript, Limbo, LPC, C #, Objective-C, Perl, PHP, Python, Verilog (язык описания оборудования) и Unix. Оболочка C.

C ++ (1983) — C с классами ».

C ++ был создан Бьярне Страуструпом, датским ученым-компьютерщиком.Мотивация к созданию нового языка проистекала из опыта Страуструпа в программировании, который он получил на степень доктора философии.

В 1983 году он был переименован из C с классами в C ++. Были добавлены новые функции, включая виртуальные функции, имя функции и перегрузку оператора, ссылки, константы, безопасное для типов выделение памяти в свободном хранилище (новое / удаление), улучшенная проверка типов и однострочные комментарии в стиле BCPL с двумя косыми чертами «// »И др.

ЦЕЛЬ C (1983) — Объектно-ориентированное расширение C.

Objective-C был создан Брэдом Коксом и Томом Лавом в начале 1980-х годов в их компании Stepstone. Оба они познакомились со Smalltalk, когда они работали в Центре технологий программирования ITT Corporation в 1981 году. Самые ранние работы над Objective-C относятся примерно к тому времени.

Objective-C представляет собой тонкий слой поверх C и является «строгим надмножеством» C, что означает, что можно скомпилировать любую программу C с помощью компилятора Objective-C и свободно включать код языка C в объект Objective- C класс.

PERL (1987) — Он был назван Perl, потому что Pearl уже был занят.

Хотя Perl официально не является аббревиатурой, используются различные бэкронимы, наиболее известным из которых является «Практический язык извлечения и отчетности».

Perl был первоначально разработан Ларри Уоллом, программистом и автором, наиболее широко известным как создатель языка программирования Perl.

Perl был разработан как язык сценариев Unix общего назначения для облегчения обработки отчетов.

PHYTON (1991) — Название языка программирования было выбрано автором в несколько непочтительном настроении (и потому что он был большим поклонником Monty Python’s Flying Circus ).

Python — широко используемый язык программирования общего назначения высокого уровня. Его философия дизайна подчеркивает удобочитаемость кода, а его синтаксис позволяет программистам выражать концепции в меньшем количестве строк кода, чем это было бы возможно на таких языках, как C ++ или Java.

Python был задуман в конце 1980-х годов, а его реализация была начата в декабре 1989 года Гвидо ван Россумом из CWI в Нидерландах в качестве преемника языка ABC, способного обрабатывать исключения и взаимодействовать с операционной системой Amoeba.

Ван Россум — главный автор Python, и его неизменная центральная роль в определении направления развития Python отражена в титуле, присвоенном ему сообществом Python доброжелательный диктатор на всю жизнь (BDFL)

РУБИН (1993) — Название «Рубин» возникло во время сеанса онлайн-чата между Мацумото и Кейджу Ишицука.Изначально предлагалось два названия: «Коралл» и «Рубин». Мацумото выбрал второе, потому что это был камень одного из его коллег.

Ruby — это динамический, рефлексивный, объектно-ориентированный язык программирования общего назначения. По словам авторов, на Ruby повлияли Perl, Smalltalk, Eiffel, Ada и Lisp.

Ruby был разработан и разработан в середине 1990-х годов Юкихиро «Мац» Мацумото в Японии. Мацумото сказал, что Ruby разработан для повышения продуктивности и развлечения программистов в соответствии с принципами хорошего дизайна пользовательского интерфейса.

JAVA (1995) — он был назван Java в честь количества кофе, потребляемого при разработке языка.

Java — это язык компьютерного программирования общего назначения, который является параллельным, основанным на классах, объектно-ориентированным и специально разработан, чтобы иметь как можно меньше зависимостей реализации. Он предназначен для того, чтобы позволить разработчикам приложений «писать один раз, запускать где угодно» (WORA), что означает, что скомпилированный код Java может работать на всех платформах, поддерживающих Java, без необходимости перекомпиляции.

Java была первоначально разработана Джеймсом Гослингом, канадским ученым-компьютерщиком из Sun Microsystems и выпущена в 1995 году в качестве основного компонента Java-платформы Sun Microsystems. Синтаксис языка во многом унаследован от C и C ++.

PHP (1995) — Название PHP происходит от P ersonal H или P age, теперь оно обозначает гипертекстовый препроцессор.

PHP — это язык сценариев на стороне сервера, предназначенный для веб-разработки, но также используемый в качестве языка программирования общего назначения.

В 1994 году Расмус Лердорф начал разработку PHP, когда он написал серию двоичных файлов Common Gateway Interface (CGI) на языке C, которые он использовал для поддержки своей личной домашней страницы. Он расширил их, добавив возможность работы с веб-формами и взаимодействия с базами данных, и назвал эту реализацию «Персональная домашняя страница / Интерпретатор форм» или PHP / FI.

JAVASCRIPT (1995) — Он был разработан под названием Mocha , а затем язык официально назывался LiveScript , когда он впервые появился в бета-версиях Netscape Navigator 2.0 в сентябре 1995 года, но он был переименован в JavaScript при развертывании в браузере Netscape версии 2.0B3.

JavaScript — это динамический, нетипизированный и интерпретируемый язык программирования высокого уровня. Он стандартизирован в спецификации языка ECMAScript. Наряду с HTML и CSS, это одна из трех основных технологий производства контента в World Wide Web; большинство веб-сайтов используют его, и он поддерживается всеми современными веб-браузерами без плагинов.

Несмотря на некоторое сходство имен, синтаксиса и стандартных библиотек, в остальном JavaScript и Java не связаны между собой и имеют очень разную семантику.Синтаксис JavaScript фактически унаследован от C, тогда как на семантику и дизайн влияют языки программирования Self и Scheme.

JavaScript был первоначально разработан Бренданом Эйхом, когда он работал в Netscape Communications Corporation. Действительно, конкурируя с Microsoft за принятие пользователями веб-технологий и платформ, Netscape считала, что их клиент-сервер предлагает распределенную ОС с портативной версией Java Sun Microsystems, обеспечивающей среду, в которой можно запускать апплеты.

C # (2000) — Название «До-диез» было вдохновлено нотной записью, где диез указывает на то, что написанная нота должна быть сделана на полтона выше по высоте.

C # задуман как простой, современный объектно-ориентированный язык программирования общего назначения. Его команду разработчиков возглавляет Андерс Хейлсберг. Самая последняя версия — C # 6.0, выпущенная 20 июля 2015 г.

.

В январе 1999 года Андерс Хейлсберг сформировал команду для создания нового в то время языка, названного Cool, что расшифровывалось как «C-подобный объектно-ориентированный язык».Microsoft рассматривала возможность сохранения названия «Cool» в качестве окончательного названия языка, но решила не делать этого по причинам, связанным с товарным знаком. К тому времени, когда проект .NET был публично объявлен на конференции профессиональных разработчиков в июле 2000 года, язык был переименован в C #.

SCALA (2003) — Название Scala представляет собой сочетание слов «масштабируемый» и «язык», означающее, что он предназначен для роста в соответствии с требованиями пользователей.

Scala — это язык программирования для общих программных приложений.Scala имеет полную поддержку функционального программирования и очень сильную систему статических типов. Это позволяет программам, написанным на Scala, быть очень краткими и, следовательно, меньшими по размеру, чем другие языки программирования общего назначения.

Разработка Scala началась в 2001 году в Федеральной политехнической школе Лозанны (EPFL) Мартином Одерски после работы над Funnel, языком программирования, сочетающим идеи функционального программирования и сетей Петри. Одерский ранее работал над Generic Java и javac, компилятором Sun Java.

GO (2009) — Его также часто называют golang , это язык программирования, разработанный в Google.

Go явно следует традициям языка C, но в него внесено множество изменений для повышения лаконичности, простоты и безопасности.

Go был разработан в Google в 2007 году Робертом Гриземером, Робом Пайком и Кеном Томпсоном. Это статически типизированный язык с синтаксисом, в значительной степени унаследованным от C, добавляющим сборку мусора, безопасность типов, некоторые возможности динамической типизации, дополнительные встроенные типы, такие как массивы переменной длины и карты значений ключей, а также большой стандарт библиотека.

SWIFT (2014) — он был представлен на Всемирной конференции разработчиков Apple (WWDC) в 2014 году, в 2014 году был обновлен до версии 1.2, а на WWDC 2015 — до Swift 2.

Swift — это компилируемый язык программирования с несколькими парадигмами, созданный Apple Inc. для iOS, OS X и разработки операционных систем для часов. Swift разработан для работы с фреймворками Apple Cocoa и Cocoa Touch и большим объемом существующего кода Objective-C, написанного для продуктов Apple.Swift призван быть более устойчивым к ошибочному коду («безопаснее»), чем Objective-C, и более лаконичным.

Разработка Swift началась в 2010 году Крисом Латтнером при возможном сотрудничестве со многими другими программистами Apple. Swift взял языковые идеи «из Objective-C, Rust, Haskell, Ruby, Python, C #, CLU и слишком многих других, чтобы их перечислить». 2 июня 2014 года приложение Worldwide Developers Conference (WWDC) стало первым публично выпущенным приложением, написанным на Swift.

Список важных языков программирования по годам:

Вот список некоторых из наиболее важных языков программирования с 1950-х по 2014 год:

Этот список будет обновляться по мере создания и внедрения новых языков программирования.

Нравится:

Нравится Загрузка …

История компьютеров: хронология языков программирования

Цены, спецификации, доступность и условия предложений могут быть изменены без предварительного уведомления. Ценовая защита, соответствие цен или гарантии цен не распространяются на внутридневные, ежедневные предложения или ограниченные по времени рекламные акции. Ограничения по количеству могут применяться к заказам, включая заказы на товары со скидкой и рекламные товары. Несмотря на все наши усилия, небольшое количество товаров может содержать ошибки в ценах, типографике или фотографиях.Правильные цены и рекламные акции подтверждаются в момент размещения вашего заказа. Эти условия применяются только к продуктам, продаваемым на HP.com; предложения реселлеров могут отличаться. Товары, продаваемые на HP.com, не подлежат немедленной перепродаже. Заказы, не соответствующие условиям и ограничениям HP.com, могут быть отменены. Контрактные и оптовые заказчики не имеют права.

Рекомендованная производителем розничная цена HP предоставляется со скидкой. Рекомендуемая производителем розничная цена HP указана либо как отдельная цена, либо как сквозная цена, а также указана цена со скидкой или рекламная цена.На скидки или рекламные цены указывает наличие дополнительной более высокой начальной цены MSRP

Следующее относится к системам HP с Intel 6-го поколения и другим процессорам будущего поколения в системах, поставляемых с Windows 7, Windows 8, Windows 8.1 или Windows Системы 10 Pro, пониженные до Windows 7 Professional, Windows 8 Pro или Windows 8.1: эта версия Windows, работающая с процессором или наборами микросхем, используемыми в этой системе, имеет ограниченную поддержку со стороны Microsoft. Дополнительные сведения о поддержке Microsoft см. В разделе часто задаваемых вопросов о жизненном цикле поддержки Microsoft по адресу https: // support.microsoft.com/lifecycle

Ultrabook, Celeron, Celeron Inside, Core Inside, Intel, логотип Intel, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, логотип Intel Inside, Intel vPro, Itanium, Itanium Inside, Pentium, Pentium Inside, vPro Inside, Xeon, Xeon Phi, Xeon Inside и Intel Optane являются товарными знаками корпорации Intel или ее дочерних компаний в США и / или других странах.

Гарантия для дома доступна только для некоторых настраиваемых настольных ПК HP. Потребность в обслуживании на дому определяется представителем службы поддержки HP.Заказчику может потребоваться запустить программы самопроверки системы или исправить обнаруженные неисправности, следуя советам, полученным по телефону. Услуги на месте предоставляются только в том случае, если проблема не может быть устранена удаленно. Услуга недоступна в праздничные и выходные дни.

HP передаст в Bill Me Later® информацию о вашем имени и адресе, IP-адрес, заказанные продукты и связанные с ними расходы, а также другую личную информацию, связанную с обработкой вашего приложения. Bill Me Later будет использовать эти данные в соответствии со своей политикой конфиденциальности.

Microsoft Windows 10: не все функции доступны во всех выпусках или версиях Windows 10.Системам может потребоваться обновленное и / или отдельно приобретенное оборудование, драйверы, программное обеспечение или обновление BIOS, чтобы в полной мере использовать все возможности Windows 10. Windows 10 обновляется автоматически, что всегда включено. Могут применяться сборы интернет-провайдеров, и со временем могут применяться дополнительные требования для обновлений. См. Http://www.microsoft.com.

Соответствующие критериям HP Rewards продукты / покупки определяются как продукты / покупки из следующих категорий: Принтеры, ПК для бизнеса (бренды Elite, Pro и Workstation), выберите Аксессуары для бизнеса и выберите Чернила, Тонер и бумага.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *