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

Обновлено: 01.07.2024

Первые устройства были намного примитивнее современных. Так, изначально требовалось устанавливать переключатели на панели вычислительного устройства чтобы получить возможность создавать и использовать программы.
Первую попытку создания языка программирования фиксируют в годы Великой Отечественной войны, когда немецкий учёный Конрад Цузе создал язык Plankalkul, который на тот момент времени казался многообещающим и перспективным. Проблема в реализации и распространении этого языка заключалась в том, что разработка пришлась на годы войны, а публикации увидели свет только в 70е годы, когда сменились условия и реалии функционирования языков.

Начало пути

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

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

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

Алгоритмические языки: понятие и свойства

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

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

Примечание 2

Большим плюсом таких программ является то, что программу очень легко написать, она также легко читается и редактируется. Минусом можно назвать затраченное на обработку время и объём занимаемой памяти.

Структурное программирование: основы и суть

Первый язык кодирования высокого уровня с процессом компиляции был разработан в 1954 году, а в 1956 году свет увидел язык Fortran, который содержал алгоритмы, значительно упрощающие разработку программ. Но нюанс использования языка Fortran заключался в том, что его рационально было использовать на маленьких программах, на больших он не реализовывался в полной мере. Тем не менее, можно сказать, что для языка программирования того времени, даже маленький шаг вперёд был равносилен прорыву. Благодаря разработке различных языков маленькими шагами, постепенно появлялись языки, которые полезны в использовании сейчас.

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

В последующее десятилетие появилось ещё множество языков, назовём некоторые из них:

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

Созданным языкам не хватало структуры, что и служило причиной их нераспространения.

В 70е годы начали разрабатывать профильные языки, такие как Lisp, Forth или Pascal. Последний заслуживает особого внимания, тем более что он популярен даже сейчас.

Своё название язык получил от имени известного учёного Блеза Паскаля. Он довольно прост в использовании и выявлении ошибок, хорошо структурирован и во многом именно эти характеристики позволили языку стать таким востребованным. Для чего был создан этот язык? Основное его предназначение – это решение задач разных уровней и обучение.

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

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

Объектно-ориентированное программирование: этапы и особенности

В тех же 70х годах начало развиваться и другое направление программирования – объектно-ориентированное. Фактически оно возникло как реакция на процедурное программирование, которое требовало доработки в плане согласования данных и их обработки, а так же подобных операций с подпрограммами.

Для того, чтобы ориентироваться в данном направлении, необходимо дать пояснения таким понятиям как:

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

Примечание 3

Язык Симула появился в 1967 г. как первый язык, поддерживающий работы с виртуальными методами, объектами и классами на принципах объектной ориентированности. Несмотря на очевидные преимущества языка, он не был оценен по достоинству. Но, как это обычно бывает, развитие этого языка дало толчок для дальнейших разработок. Так, например, на тех же принципах чуть позднее был разработан язык Smalltalk.

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

Интернет: от истоков к современности

Одним из самых распространённых и реализуемых становится язык Perl – простой и понятный в плане переноса. Именно на нём начинают писаться приложения различного уровня сложности. Немалую роль играют также языки Java и SQL. Последний позволяет создавать структурированные запросы и открывать доступ к базам данных по запросу.

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

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


Лишь в 50-е годы, для личных нужд фирмы IBM был разработан первый алгоритмический язык. Его назвали FORTRAN. Разумеется, к тому времени уже было несколько наработок языков, преобразующих в машинных код арифметические выражения, но именно создание FORTRAN'а считается отсчетом новой эры - переходом на парадигму алгоритмических языков. Что он мог? Он позволял проводить расчеты только при помощи записи алгоритма с применением операторов ввода/вывода и условных. Первоначально язык создавался специально для вычислительной системы IBM 407. Но популярность FORTRAN'а привела к тому, что даже производители других архитектур стали выпускать собственные трансляторы. Вследствие этого, в 1966 году был выпущен общий стандарт FORTRAN 66.

Уже в конце 50-х гг. появилась хорошая альтернатива FORTRAN'у. Питер Наур разработал алгоритмический язык, независимый от архитектуры. Его назвали ALGOL. В данном случае, разработчики также постарались расширить возможности языка, максимально приблизив систему обозначений к математической.

В начале 60-х гг. производители IBM представили не особо популярный язык PL/I. Он работал с архитектурой IBM 360 и служил своеобразным расширением FORTRAN'а при помощи некоторых средств языка COBOL.
Первый язык, в котором было введено понятие класса - Simula-67. Его создали Дал и Найард в конце 60-х.
70-е гг. произвели на свет Pascal. Он быстро завоевал массовую популярность. Чуть позже миноборона США начала разработку языка высокого уровня. Проект разрабатывали 4 независимые группы, причем выработка требований и спецификаций проводилась на основе языка Pascal. Получившийся продукт был выпущен уже в начале 80-х, он получил название Ada.

70-е гг. также подарили нам универсальный язык C. Его авторами были Кен Томпсон и Денис Ритчи. Язык пользовался повышенной популярностью у системных программистов, перво ядро ОС UNIX было разработано именно на нем. В 1982 году стандарт C поступил в разработку в ANSI, получившийся вариант был принят в 1990 году. На основе этого языка были разработаны современные языки Java и C++.

Помимо языков, работающих с алгоритмами, свое развитие получили и языки другой направленности. Для обработки деловой информации был разработан COBOL, языками искусственного интеллекта считаются Prolog и LISP. Кроме того, последний широко применяется и в теории игр.

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

  • Для учеников 1-11 классов и дошкольников
  • Бесплатные сертификаты учителям и участникам

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

В н ас т о я щее в р е м я н а сч и т ы вае т ся о к о л о 8 , 5 т ы с я ч р а з л и ч н ы х я з ы к о в п р о г р ам м и р о в а н и я. И ст о р и я ЯП н ас ч и т ы вает н ес к о ль ко п о к о л е н и й (та б л . 4 ). Т а б л и ц а 4 .

П о коления Я П

Особ е нн о с т и ЯП

П ри м е р ы Я П

м а ш и н н ы й

О р и ен т и р ов а ны н а и с п о л ь з о в ан и е

в к о н к р е тн о й Э В М, сл о ж ны

в о с во е н и и , т р е б у ю т х о р о ш е г о знания а р хи те к т у ры Э В М

а сс е м б л е р ,

м ак р о а сс ем б л ер

Б о л ее у д о б ны дл я и с п о л ь зов а н и я, н о

по - пр е ж не м у м а ш и н н о- н е ав и си мы

A ss e m b l er

Яз ы к и вы с о к о г о

М о би л ьны е , ч е л о в е к о -

о р и ент и р о в анн ы е, п р о щ е в о с во е н и и

F O R T R A N , C O B O L, A l g o l ,

Непр о ц е д у рн ы е ,

о б ъе к т н о - о р и ен т и- р о ванн ы е, яз ы к и зап р о с о в, п а р а л- л е л ьные

О р и ен т и р ов а ны

на неп р о ф е сс и он а л ь н о г о по л ь з о в ат е л я и на Э В М

с па р а л л е л ьн о й а р х и т е к т у ро й

S Q L, P a sc a l , B a s i c , C + + ,

S m a ll T a l k , Si m u l a, A c to r , м о д и ф и к а ц и я Я В У Fo r tr an , яз ы к и Occ a m , S I S A L, F P

Яз ы к и и с к у сс т в е н- но г о и нт е л л е к та, эк с пе р тн ы х с и с те м , б аз з н а н и й

О р и ен т и р ов а ны н а п о вы ш ен и е и нт е л л е к т у а л ь н о г о у р ов н я Э В М и и нте р ф е й с а с яз ы к а м и

In t er L i s p, E x p e r t L i s p, I Q L i s p, S A I L , C l o ut, Q &A , H A L

Яз ы к и н е й р онн ы х с етей

Н а ри с. 1 0 п о каза н а с х ема р аз в и тия о с н о вн ы х Я П .

hello_html_665e5374.jpg

Р и с. 1 0 . И с т о р и я р а з в и т и я ос н о вн ы х Я П

Я з ык н и з к о г о у р о в н я – э т о я з ы к п р о г р а мм и ро в а н и я п р е д н а зна ч е н ны й д л я о п р е д еле н н о г о т и п а к о м п ью те р а и о т р а жающ и й е г о вн у т р е н н и й м а ш и н н ы й к од ; язы к и н и з к о го у ро в н я час т о н азыва ю т маш и н н о - о р и е н т и ро ван н ы м и яз ы ка м и .

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

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

Первое п о к ол ен и е . Язы к о м п ро г р а м м и ро в а н и я п е р во г о п о к о л е ни я с ч и т а- ется м а ш и н н ы й к о д . Данн ы е н а м а ш и н но м я з ы ке п р е д ста в л е н ы ч и слами и с и м- волами. Маш и н н ы й к о д с о с т ои т и з ин с т р у к ций , к о т о ры е п р о ц е с с о р до л ж ен в ы- по л ни т ь . Пр о г р а мм ир у я н а ма ш и нн о м к о д е, п ро г р а м ми с т д о л ж е н бы л п и са т ь

в ко н еч н ом и тоге о н а в се гда п р е обр а з у е т с я в по н ят н ы й а пп а р а т н о м у о б ес п ече ни ю Э В М

ма ш инн ый к о д.

В т о р о е п о к ол ен и е . Стр е м л е н и е пр о г р а ммис т о в о п е р ир о в а ть н е ц и ф р а м и , а с и м в о л а ми , п р и в е л о к с о з д а ни ю м н е м о н и ч е с к о го язы к а п ро г р а мм и р о ва н и я, к о- т о ры й н а з ы ва ю т а с се м б л е р ом , м н е м о к о д о м , а вто к о д о м . Этот яз ы к и м еет оп р е- д еле н н ы й с ин т ак с и с зап и си п р о г р а м м, в к о т о р о м, в ч а с т но с т и , ц и ф р о в о й к о д

п ол ь з у ющ и х с п ец и ф и чес ки е а пп а р а т н ые воз м ож н о с ти д а нн ого к л асс а Э В М.

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

П р и н ц и п и ал ь н ы ми о т л и ч и я м и Я В У о т язы к о в н и з к о го у р о вня яв л яютс я :

 и с п о ль зов а н и е п е р е ме н н ы х ;

 возм о ж н о сть з а п и с и с л о ж ны х вы р а ж е ни й ;

 р ас ш и р яе м о сть т и п о в д а н н ы х за с ч ет к о н ст р у и р о в а н и я н о в ы х т и п о в д а нн ы х и з б а з о в ы х ;

 р ас ш и р яе м о сть н а б о р а о п е р а ц и й за счет п о д к лю ч е ни я б иб л ио т ек п о д пр о г р ам м ;

 слабая з а в и с и м о сть от т и п а Э ВМ.

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

Че т в е р т о е п о ко л е н и е . Языки четв е р т о г о п о к о л е н и я н о с я т я р к о в ы р а ж е н- н ы й н е п ро ц ед у р ный х а р акт е р , о п р е д еля е мый тем, что пр о г р аммы н а та к и х я з ы- ках о пи с ы ва ю т т о л ь ко Ч т о , а н е к а к н а д о с д ела ть . В п р о г р амм а х фор м ир у ю тся скорее с о о т н о ш е н и я, а н е п о сл е д о ват е ль но с т и ша г о в в ы п о л н е н и я алг о р и тм о в. Т ип и ч н ы м и п р и м е р ами н е п ро ц е д у р ны х яз ы к о в яв л яются я зык и , и с п о ль з у ем ы е д л я зад а ч и ск у сств е н н о г о ин т ел л екта ( н а п р и м е р , Pr ol og , L a n gi n ). Т ак как н е п р о- ц е д у р н ы е я з ы к и и м еют минимал ьн о е ч и сло с ин т ак с и че с к и х п р авил, о н и з н а ч и- те ль н о бо л е е п р и г о д н ы д л я п р и ме н е ни я н е п р о ф ес с и о н ал а ми в о б л ас т и п р о г р а м- миров а н и я.

Вт о р о й те н д е н ц и е й р аз в и т и я ЯП четве р т о г о п о к о л е н и я яв л я ю т- ся о б ъе к т н о - о р и е н т и р о в а нные я з ы к и , б аз и р у ю щи е ся н а п о н ят и и п р о г р ам м н о г о об ъ е к та, вп е р вые и с по ль з о ва н н о го в я зыке S i m ul a - 6 7 и с о ста в и вше г о в п о сл ед- ствии о с но ву и з в ест н о го я з ы ка S m a l l T a l k . Пр о г р амм н ы й о б ъ ект с о с т ои т и з ст р у кт у р д а н ны х и алг о ри т м о в, п р и э т о м к а ж д ы й об ъ е к т знает, к а к в ы п о лн я ть оп е р а ц и и с о с в о и м и с о бст в енны м и д а н ным и . Т а к и м и св о й ствами об л а д ают о б ъ- ект н о - о р и е н т и ро в а н ны е P a s c a l , B a s i c , C ++, S m a ll T a l k , S i m u l a , A c to r и р яд др у г и х яз ы к о в п р о г р а мм и р о ва н и я.

Т р ет ь и м н а п р ав л е н и ем р аз в и т и я язы ко в четве р т о го п о к о л е ни я м о ж н о с ч и- тать я з ыки за п р о с о в , по з в о л яю щ и х по л ь зователю по л у чать ин ф о р ма ц и ю и з б а з д а нн ых . Я з ы ки з а п р о с о в и ме ю т св о й о с о б ы й с и н так с и с, к о т о ры й д о л жен с о б л ю- д ат ь ся, к ак и в т р а д и ц и о н ны х ЯП т р ет ь его п о к о л е н и я, н о п р и э т о м о н и п р о ще в и с п о ль зов а н и и . С р е д и яз ы к о в з а п ро с о в фа к т и че с к и м ст а н д а р т о м стал язык S Q L ( S t r u c t u r e d Q u ery L a n g u a g e ).

Чет в е р т ы м н а п р ав л е н и ем р аз в и т и я я в л яются яз ы ки п ара ллельн о г о п р о- г р а мм и р о в а н и я (м о д и ф и к а ц и я Я В У F o r t r a n , яз ы к и O cca m , SIS AL , FP и др .), к о- т о р ы е о р и е н т и ро в а н ы н а с о з д а ни е п ро г р ам м н о го о б ес п еч е ни я д л я в ы ч и с л и те л ь- н ы х с р е д ств п а р ал л ел ь н о й а р х и тект у р ы ( м н о г о м аш и н н ы е, м у ль ти пр о ц ес с о р ны е с р е д ы и др .), в о т ли ч и е о т я з ы к о в т р ет ь его п о к о л е н и я, ор и е н т и ро в а н н ы х н а т р а- д и ц ио н н у ю о д но п ро ц ес с о рн у ю архитек т у р у .

Пятое п о ко л ен и е . К ин т е н с и в н о р а з в и ва ю щем у ся в н аст о я щее в р е- мя п ято м у п о к о л е н и ю о т но с ятся язы к и и с к у сствен н о го и н те лл екта, эк с п е р т ны х с и стем, б аз зн а н и й ( I n t er Li sp , Ex p e r t Lis p , I QL i s p , S A IL и д р .), а также е стест в е н- ны е я з ы к и , н е т р е б у ю щие о сво ен и я ка к о г о - л и б о с п е ц и а ль но г о с и н так с и са (в

н ас т о ящ е е вр е мя у с п е ш н о и с по ль з у ю тся естест в е н ны е ЯП с о г р а н и ч е н н ы м и в о з м о ж н о ст я ми – C l o u t , Q & A , HA L и д р .).

Ш естое п о к о л ен и е . Язы к и н е й р о н ны х сетей (са м о об у чающиеся яз ы к и ) . И сслед о в ате ль ск и е р а б о т ы в этой о б л асти н ача л и сь в се р е д и н е 8 0 - х г одо в X X в ека.

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

Содержание

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

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

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

Например, для организации чтения блока данных с гибкого диска программист может использовать 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++,

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

Пятница — самое время расслабиться и вспомнить, с чего все началось. Представляем вам краткий экскурс в историю разработки от GeekBrains.

Доисторическая эра

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

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

С другой, первый язык программирования в современном представлении зародился лишь во время Второй мировой войны на релейной машине Z4 немецкого изобретателя Конрада Цузе. Его название Планкалкюль (нем. Plankalkül — исчисление планов), и это был полноценный язык высокого уровня, поддерживающий условные операторы, арифметические операции, массивы, циклы, исключения и утверждения. Доподлинно известно, что в конце 40-х годов Планкалкюль позволял ЭВМ решать шахматные задачи.
Изобретение Цузе могло бы изменить ход истории, однако итоги войны и усилия американцев по популяризации собственного машинного языка отложили полноценное явление миру Планкалкюля вплоть до 1972 года.



Z4 в Немецком музее, Мюнхен

Языки для компьютеров

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

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

Качественный скачок произошёл после изобретения транзистора и первых доступных компьютеров. Это побудило в период с 1954-1957 году компанию IBM активно работать над разработкой популярного коммерчески языка Fortran (от англ. Formula и Translation).

Fortran — язык для научных и инженерных вычислений. Считается, что именно он стал первым реализованным языком высокого уровня. Благодаря большому количеству математических библиотек Fortran был и остается важным языком для разного рода научных изысканий.

Далее началось бурное развитие программирования: практически одновременно появились Algol, алгоритмический высокоуровневый язык, активно использовавшийся в СССР и Европе, LISP и COBOL.

Языки для народа

Но по-настоящему массовым программирование стало с появлением языка BASIC в 1964 году. Преподаватели Дартмутского Колледжа Джон Кемени и Томас Курц разработали его для обучения студентов основам программирования ЭВМ.

BASIC был алгоритмическим языком, для его создателей было важно не быстродействие и эффективность, а легкое понимание. Тем не менее BASIC быстро обрёл популярность в реализациях от Microsoft и Apple. Но не все были им довольны. По мнению противников языка простота и бесструктурность ранних версий BASIC поощряли применение порочных и опасных методик разработки.

Кайнозой

В 1960-х годах компания Bell Labs всерьёз взялась за разработку операционной системы Unix для своих миникомпьютеров. Первые ОС были написаны на ассемблере, но эксперимент оказался неудачным.
Потом в алфавитном порядке Кеном Томпсоном и Деннисом Ритчи был специально разработан интерпретируемый язык B (Би), но и в этот раз результат оставлял желать лучшего.

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

Несмотря на внешнюю незамысловатость, Pascal оказался крайне эффективным языком не только в деле обучения, но и в серьезной разработке. Он остаётся крайне востребованным как в школах, так и в мире больших приложений: Total Commander, WinRAR, ранние версии Skype и Nero Burning ROM были написаны на Pascal.

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

Современность

Впрочем, теми же самыми характеристиками можно описать и Ruby, увидевший свет в 1995 году, с поправкой на то, что у Юкихиро Мацумото было 2 года, чтобы подумать, чем его язык может стать лучше современников.

Развитие интернета в конце XX века требовало более качественных языков обработки текста и данных. Так на свет появились HTML, PHP, CSS и JavaScript, без которых сегодня очень трудно представить веб-разработку.

Вместе с этим появился и Java — объектно-ориентированный язык, использующий виртуальную машину JVM. Это обеспечивает языку практически полную независимость от машины, на которой производится запуск. Совокупность этих факторов и популярность смартфонов c ОС Android позволяет Java возглавлять список самых популярных языков по версии Tiobe, а нам — рекомендовать его начинающим разработчикам в качестве первого или основного.

Если взглянуть на этот же самый рейтинг, в конце второго десятка можно отыскать современные языки программирования. Например, Swift — продукт компании Apple, популярный не только за счет своих качеств, но и благодаря громкому имени производителя.

Будущее

Уже сейчас появляются языки программирования, которые можно назвать языками сверхвысокого уровня. Они предназначены не для написания прикладных программ, а для обработки больших массивов данных и статистики. В их числе R, MATLAB и Julia.
Можно предполагать, что в будущем появятся человекоориентированные языки, на которых написать программу будет не сложнее, чем пост в ЖЖ. С другой стороны, квантовые компьютеры потребуют свой особый, квантовый ассемблер.

Как думаете, что будет дальше, и на какой из существующих языков поставите вы?

Читайте также: