Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Машинный код процессора. Понятие программы. Уровни языков программирования.

Машинный код – последовательность чисел, в которых закодирована программа для исполнения процессором.

Машинный код (платформенно-ориентированный код), машинный язык — система команд (набор кодов операций) конкретной вычислительной машины, которая интерпретируется непосредственно процессором или микропрограммами этой вычислительной машины.

Машинный код можно рассматривать как примитивный язык программирования или как самый низкий уровень представления скомпилированных или ассемблированных компьютерных программ. Большинство программ пишется на языках более высокого уровня и транслируется в машинный код компиляторами. Машинный код иногда называют нативным кодом (также собственным или родным кодом — от англ. native code), когда говорят о платформенно-зависимых частях языка или библиотек.

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

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

Для разработки программ используются специальные языки.

Язык программирования – это формальная знаковая система, которая предназначена для написания программ, понятных для исполнителя (в нашем рассмотрении – это компьютер).

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

Поколение языков программирования. Обзор языков программирования высокого уровня.

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

I поколение: Начало 1950-х годов — язык первых компьютеров. Первый язык ассемблера, созданный по принципу «одна инструкция — одна строка». Основная отличительная особенность: ориентирование на конкретный компьютер.

II поколение: Конец 1950-х — начало 1960-х гг. В язык Assembler введено понятие переменной, то есть стало возможным создание программ без принадлежности к отдельным адресам памяти.

III поколение: 1960-е гг. — Языки программирования высокого уровня. Их характеристики: относительная простота; независимость от конкретного компьютера; возможность использования мощных синтаксических конструкций. Простота языка позволяет писать небольшие программы и людям, которые не являются профессиональными программистами. Основная отличительная особенность языка третьего поколения: ориентирование на алгоритм (алгоритмические языки). Примеры: Си, Паскаль, Джава, Бейсик, и многие другие. Всего в мире существует около 200 популярных языков программирования третьего уровня.

IV поколение: Начало 1970-х гг. до сегодняшнего времени. Непроцедурные, объектно-ориентированные, языки запросов, параллельные. Часто относят: SQL, SGML (HTML, XML), Prolog, и многие другие узкоспециализированных декларативных языков. Основная отличительная особенность языка четвертого поколения: приближение к человеческой речи (декларативные языки). Некоторые языки имеют черты одновременно и третьего и четвертого поколений.

V поколение: Языки искусственного интеллекта, экспертных систем и баз знаний, естественные языки. Ориентированы на повышение интеллектуального уровня ЭВМ и интерфейса с языками.

Fortran (Фортран). Это первый компилируемый язык, созданный Джимом Бэкусом в 50-е годы. Основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода. Однако для этого языка было создано огромное количество библиотек, начиная от статистических комплексов и кончая пакетами управления спутниками, поэтому Фортран продолжает активно использоваться во многих организациях, а сейчас ведутся работы над очередным стандартом Фортрана F2k, который появился в 2000 году. Имеется стандартная версия Фортрана HPF (High Performance Fortran) для параллельных суперкомпьютеров с множеством процессоров.

Cobol (Кобол). Это компилируемый язык для применения в экономической области и решения бизнес задач, разработанный в начале 60-х годов. Он отличается большой «многословностью» — его операторы иногда выглядят как обычные английские фразы. В Коболе были реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях. На этом языке создано очень много приложений, которые активно эксплуатируются и сегодня. Достаточно сказать, что наибольшую зарплату в СИГА получают программисты на Коболе.

Algol (Алгол). Компилируемый язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол 68, по своим возможностям и сегодня опережающая многие языки программирования, однако из-за отсутствия достаточно эффективных компьютеров для нее не удалось своевременно создать хорошие компиляторы.

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

Basic (Бейсик). Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении.

С (Си). Данный язык был создан в лаборатории Bell и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора.

Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (Unix).

C++ (Си++). Си++ — это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость, в результате чего создание сложных и надежных программ потребовало от разработчиков высокого уровня профессиональной подготовки.

Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка — компиляция не в машинный код, а в платформно — независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора — виртуальной Java-машины/УМ (Java Virtual Machine), версии которой созданы сегодня для любых платформ. Благодаря наличию множества Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Ява сегодня занимает второе место в мире после Бейсика.

Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику (технология Jini) и созданию платформно — независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технология Java Beans). Пока основной недостаток этого языка — невысокое быстродействие, так как язык Ява интерпретируемый.

Читать еще:  Системой программирования является

3. Понятия: алгоритм, семантика, синтаксис, отладка и тестирование программы.

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

Синтаксис –совокупность правил и требований записи команд (операторов).

Семантика –смысл каждой команды и других конструкций языка.

Отладка –процесс устранения ошибок.

Тестирование –процесс поиска ошибок в программе.

Статьи к прочтению:

Классификация языков программирования

Похожие статьи:

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

Рассматривают пять поколений языков программирования (ЯП). Первые три поколения ЖЕ характеризовались более сложным набором зарезервированных слов и…

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

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

Расцвет второго поколения языков программирования пришелся на конец 50-х — начало 60-х годов. Тогда был разработан символический ассемблер, в котором появи­лось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ.

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

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

Рождение языков пятого поколения произошло в середине 90-х годов. К ним отно­сятся также системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Главная идея, кото­рая закладывается в эти языки, — возможность автоматического формирования результирующего текста на универсальных языках программирования (который потом требуется откомпилировать). Инструкции же вводятся в компьютер в макси­мально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием.

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

Fortran (Фортран). Это первый компилируемый язык, созданный Джимом Бэкусом в 50-е годы. Основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода. Однако для этого языка было создано огромное количество библиотек, начиная от статистических комплексов и кончая пакетами управления спутниками, поэтому Фортран продолжает активно использоваться во многих организациях.

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

Basic (Бейсик). Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении.

С (Си). Данный язык был создан в лаборатории Bell и первоначально не рассматри­вался как массовый. Он планировался для замены ассемблера, чтобы иметь возмож­ность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора.

Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Благодаря наличию мно­жества Java-машин программы на Java можно переносить не только на уровне исход­ных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Ява сегодня занимает второе место в мире после Бейсика. Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику, и созданию платформенно — независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различ­ными операционными системами (технология Java Beans). Пока основной недоста­ток этого языка — невысокое быстродействие, так как язык Ява интерпретируемый.

Pascal, Fortran, 1C: почему умирают старые языки программирования

По разным оценкам, на сегодняшний день в мире существует от 2,5 до 10 тыс. языков программирования различного уровня и типа. На них только в России пишут около 500 тыс. человек, а точное количество программистов по всему миру до конца неизвестно — цифры расходятся от 18 до 25 млн разработчиков. Они работают в разных сферах — одни занимаются бэкенд-разработкой, другие — фронтенд, третьи пишут нейросети и работают с большими данными. «Хайтек» составил список языков программирования, на которых практически перестали работать уже сейчас либо которые забудутся уже в ближайшие годы.

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

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

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

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

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

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

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

Читать еще:  Линейное программирование и экономический анализ

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

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

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

Низкого уровня. К ним, в первую очередь, относят машинные языки, которые реализуются непосредственно на аппаратном уровне. Это первое существующее поколение языков программирования.

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

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

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

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

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

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

Именно первый язык высокого уровня Fortran пришел на смену ассемблеру в 1957 году. Название Fortran является сокращением от FORmula TRANslator — «переводчик формул». Несмотря на критику, его быстро приняли в компьютерном обществе, особенно в научной среде.

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

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

1С — редкий язык программирования, использующий кириллицу

Язык программирования 1C практически не выбирают молодые программисты — средний возраст разработчиков на этом языке составляет более 35 лет. Средой исполнения языка 1С является платформа «1С:Предприятие», при этом все команды и вообще вся разработка ведутся на русском языке.

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

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

Objective-C — фирменный язык Apple

Язык программирования Objective-C появился еще в 1980-х годах, однако широкую популярность приобрел только в 2009 году — после выхода культового смартфона iPhone 3G. Сам язык Objective-C совмещал в себе идеи C и Smalltalk — применения систем с оконным управлением.

Несмотря на востребованность языка, Apple пришлось отказаться от его использования из-за большого количества критических ошибок, а также ограниченности его использования.

Вместо Objective-C разработчики Apple представили язык программирования Swift, на котором теперь работают все приложения, написанные под iPhone. Сейчас компания Apple почти перестала поддерживать Objective-C.

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

J# от Microsoft

С постепенным распространением программной платформы .NET Framework компания Microsoft решила создать собственный скрипт программирования, который бы смог заменить популярнейший язык Java для разработчиков.

J# в итоге оказался недоделанным и с практически полностью скопированным синтаксисом у Java. Даже для поддержки .NET Framework языку J# пришлось использовать дополнительные библиотеки — это еще больше усложняло работу с ним.

Сейчас J# перестал поддерживаться Microsoft и исключен из пакета Visual Studio, поэтому его изучение для программистов стало абсолютно бессмысленным.

ActionScript и Flash Player

Достаточно популярный еще пять лет назад язык программирования ActionScript от компании Adobe. Он имеет достаточно узкую направленность — именно с его помощью работает веб-плеер Flash Player, а его скорость и эффективность оказались намного выше, чем у JavaScript.

Основным недостатком ActionScript оказалась именно работа Flash Player. Его чаще всего использовали хакеры для взлома компьютеров, он имел множество внутренних критических слабостей, которые невозможно заделать патчами.

Читать еще:  Вспомогательный алгоритм в языках программирования это

Поэтому многие ИТ-компании постепенно отказались от поддержки Flash Player, оставив его альтернативой HTML 5. В итоге и Adobe решила отказаться от поддержки этого языка к 2020 году. До конца непонятно, собирается ли компания представить какой-то аналог этого языка или работа веб-плеера полностью перейдет на формат HTML 5.

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

2GL — Языки второго поколения, языки системного программирования

Машинно-ориентированные языки позволяют использовать все возможности и особенности машинно-зависимых языков:

  • высокое качество создаваемых программ (компактность и скорость выполнения);
  • возможность использования конкретных аппаратных ресурсов;
  • предсказуемость объектного кода и заказов памяти;
  • для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
  • трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
  • низкая скорость программирования;
  • невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

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

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

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

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

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

Все многообразие современных языков программирования имеет общую эволюционную историю, поэтому существуют классификации по истории языков программирования («по поколениям»). В каждом новом поколении языки программирования становятся все более высокого уровня.

Рассмотрим одну из таких классификаций.

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

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

Вместе с появлением компьютеров третьего поколения, развитие языков программирования также вступило в новую фазу. Период с середины 50-х до 70-х годов отмечен появлением первых языков программирования высокого уровня (high-level languages). Эти языки впервые позволили ученым (прежде всего, математикам) работать с компьютерами. Языки третьего поколения, такие как С, Pascal и Fortran, состоят из английских слов, например READ, WRITE, GOTO, и математических символов. В отличие от языков первого и второго поколений синтаксис в языках третьего поколения не зависит от компьютера, на котором исполняются написанные на них программы. Язык программирования FORTRAN позволял довольно легко определять переменные и использовать для вычислений математические выражения. Для языков высокого уровня, таких как FORTRAN и COBOL, понадобились более быстрые, высокоэффективные компиляторы, поскольку при преобразовании исходного кода, выходные программы получались большими.

Четвертое поколение языков программирования зародилось в конце 70-х, и можно сказать, что их развитие продолжается по сей день. В них достигнут еще больший уровень абстракции Это такие языки как SQL (структурированный язык запросов для работы с базами данных) или Mathematica и MathCad (языки для сложных математических вычислений и решения научных задач). Эти языки предоставляют программисту гораздо более естественную форму общения с компьютером, но применимы для решения очень ограниченного круга задач. Эти языки существенно уменьшили время разработки ПО и позволили выполнять эту работу даже людям без технического образования, и не прибегая к помощи профессиональных программистов. Сегодня для выполнения многих задач программирование как таковое вообще не требуется. Например, появление приложений электронных таблиц (spreadsheets), таких как Microsoft Excel, позволяет обычным пользователям обрабатывать финансовую информацию и управлять большими массивами данных. В 60-х и 70-х годах так просто, без применения языков программирования, использовать возможности компьютеров было невозможно.

Когда пришло пятое поколение языков программирования (это прежде всего сценарные языки), эволюционный путь развития оказался нарушен. Сценарные языки программирования гораздо проще языков четвертого поколения. По сути, все они — языки-интерпретаторы. Это делает сценарные языки идеальными для написания небольших программ, но не для использования в крупных проектах. Кроме того, сценарные языки допускают вольную трактовку правил написания кода, на компьютерном жаргоне они называются «нестрогими». Сценарные языки предназначены для быстрого написания программ — посредников между другими программами, а не самостоятельных приложений. Они подобны клею, что делает их удобными для использования в интернет-приложениях, суть которых как раз и состоит в обмене данными между программами. Изящество языков программирования, так ценимое прежними поколениями разработчиков, здесь принесено в жертву удобству использования. Эти языки получили широкое распространение из-за высокой гибкости и адаптации к нуждам Интернета. Яркие примеры — Perl, применяемый для обмена данными между интернет-сервером и компьютером пользователя, и Python, используемый, помимо прочего, для управления интернет-форумами, Tcl/Tk, awk, C Shell, JavaScript (название JavaScript — не более чем маркетинговый ход, поскольку этот язык никак не связан с Java).

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

Ссылка на основную публикацию
Adblock
detector