Основные алгоритмические языки высокого уровня
Один из первых языков программирования высокого уровня, Фортран (Formula Translation), был создан в середине 50-х годов. Он используется для инженерных и научных расчетов, для реше- ния задач физики и других наук с развитым математическим аппара- том. Благодаря своей простоте и тому, что на этом языке накоплены
большие библиотеки программ, Фортран и в наши дни остается од- ним из самых распространенных алгоритмических языков.
Для решения экономических задач был создан язык програм- мирования Кобол.
Расширение областей применения ЭВМ влечет за собой созда- ние языков, ориентированных на новые сферы применения: Снобол – алгоритмический язык для обработки текстовой информации. Лисп – алгоритмический язык для обработки символов. Он находит широкое применение в исследованиях по созданию искусственного интеллекта.
В 1968 г. был объявлен конкурс на лучший язык программиро- вания для обучения студентов. Для этого конкурса Никлаус Вирт создал язык Паскаль, достаточно простой, удобный, с наличием мощных средств структурирования данных. Хотя Паскаль был разра- ботан как язык для обучения программированию, он впоследствии получил широкое развитие и в настоящее время считается одним из самых используемых языков.
Для обучения младших школьников Самуэлем Пайпертом был разработан язык Лого. Он отличается простотой и богатыми возможностями.
Широкое распространение в школах в качестве обучающего языка получил язык Бейсик, позволяющий взаимодействовать с ЭВМ в режиме непосредственного диалога. Спустя много лет после изо- бретения Бейсика, он и сегодня самый простой для освоения из де- сятков языков общецелевого программирования.
Необходимость разработки больших программ, управляющих работой ЭВМ, потребовала создания специального языка программи- рования. В начале 70-х г. был разработан язык СИ, который широко используется как инструментальный язык для разработки опера- ционных систем, трансляторов, баз данных и других системных и прикладных программ. Это язык программирования общего назна- чения. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке Ассемблера. При этом они имеют лучшую наглядность и их более просто сопровож- дать. В отличие от Паскаля, в нем заложены возможности непосред- ственного обращения к некоторым машинным командам и к опреде- ленным участкам памяти компьютера.
Появление функционального программирования привело к
созданию языка Пролог (ПРОграммы ЛОГические). Этот язык про- граммирования разрабатывался для задач анализа и понимания ес- тественных языков на основе языка формальной логики и мето- дов автоматического доказательства теорем.
В 80-х г. 20 века был создан язык Ада. В дополнение к класси- ческим свойствам, он обеспечивает программирование задач ре- ального времени и моделирования параллельного решения задач.
К языкам сверхвысокого уровня можно отнести Алгол-68 и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.
В современной информатике можно выделить два основных направления развития языков программирования: процедурное и не- процедурное.
В процедурных языках программа явно описывает определен- ную последовательность действий, которые необходимо выполнить, чтобы получить результат.
Среди процедурных языков выделяют в свою очередь струк- турные и операционные языки. В структурных языках одним опера- тором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются не- сколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.
Непроцедурное (декларативное) программирование появи- лось в начале 70-х годов 20 века, но стремительное его развитие на- чалось в 80-е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному програм- мированию относятся функциональные и логические языки.
В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь разлагаются на еще более простые и т.д. Один из основных элементов в функциональных язы- ках – рекурсия, то есть вычисление значения функции через значение этой же функции от других элементов. Присваивания и циклов в классических функциональных языках нет.
В логических языках программа вообще не описывает дейст- вий. Она задает данные и соотношения между ними. После этого сис-
теме можно задавать вопросы. Машина перебирает известные и за- данные в программе данные и находит ответ на вопрос. Порядок пе- ребора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования считается Пролог. Построение логической программы вообще не требует алго- ритмического мышления, программа описывает статические отноше- ния объектов, а динамика находится в механизме перебора и скрыта от программиста.
Можно выделить еще один класс языков программирования – объектно-ориентированные языки высокого уровня. На таких язы- ках не описывают подробной последовательности действий для ре- шения задачи, хотя они содержат элементы процедурного програм- мирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме. Примером такого языка может служить язык программирования визуального общения Object Pascal.
Языки описания сценариев, такие как Perl, Python, Rexx, Tcl и языки оболочек UNIX, предназначаются не для написания приложе- ния с нуля, а для комбинирования компонентов, набор которых соз- дается заранее при помощи других языков. Развитие и рост популяр- ности Internet также способствовали распространению языков описа- ния сценариев. Так, для написания сценариев широко употребляется язык Perl, а среди разработчиков Web-страниц популярен JavaScript.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.