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




 

Название языка Год создания Автор Страна
Фортран   Д. Бэкус США
Лисп   Д. Маккартни США
Алгол-60   П. Наур Международный
Кобол   Группа авторов Международный
Simula   К. Нигаард Европа
Бейсик   Д. Кемени США
ПЛ/1   Д. Радин США
Алгол-68   А. Вайнгартон Международный
Паскаль   Н. Вирт Европа
Форт   Ч. Мур США
Си   Д. Ритчи США
Пролог   А. Кольмеро Европа
Ада   Д. Ишбиа США
Си++   Б. Страуструп США
Java   Д. Гослинг США
АПЛ   К. Айверсон США
Снобол   Р. Грисуолл США
Сетл   Д. Шварц США
Модула-2   Н. Вирт Европа
Оккам   Д. Мэй Европа
Common Lisp   Г. Стил США
Objective С   Б. Кокс США
Оберон   Н. Вирт Европа
Модул а-3   Б. Калсов США
Limbo   Д. Ритчи США
Си-шарп   А. Хейльсберг США

 

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

задачи искусственного интеллекта – Лисп, Пролог, MultiLisp, Common Lisp, Рефал, Planner, FRL, KRL,Qlisp и др.;

– параллельные вычисления – Fun, АПЛ, Alfl, PARAlfl, ML, SML, Hope, Miranda, Оккам, PFOR, Glypnir, Actus, параллельный Кобол, ОВС-ЛЯПИС, ОВС-Мнемокод, ОВС-Алгол, ОВС-Фортран, РА(1), PA(G) и др.;

– задачи вычислительной математики и физики – Оккам, PFOR, Glypnir, Actus, параллельный Кобол, ОВС-ЛЯПИС, ОВС-Мнемокод, ОВС-Алгол, ОВС-Фортран, РА(1), PA(G) и др.;

– разработка интерфейса – Форт, Си, Си++, ассемблер, Simula-67, OAK, Смолток, Java, РПГ и др.;

– разработка про грамм-оболочек, разработка систем – Форт, Си, Си++, ассемблер, макроассемблер, Simuia-67, OAK, Смолток, Java, РПГ и др.;

– задачи вычислительного характера – Алгол, Фортран, Кобол, Ада, Фокал, Бейсик, Паскаль и др.;

– оформление документов, обработка больших текстовых файлов, организация виртуальных трехмерных интерфейсов в Интернете, разработка баз данных – HTML, Perl, VRML, SQL, Natural, DDL, DSDL, SEQUEL, TSBL и др.

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

Разделение на компилируемые и интерпретируемые языки является условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов).

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

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

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

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

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

– языки высокого уровня;

– языки низкого уровня.

Язык высокого уровня (High-level Language) – язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран, ПЛ/1, Бейсик, Паскаль, Си, Ада, Алгол, Кобол, Лисп, Лого, Пролог, Си, Си Шарп (С#), Си++, Clipper, AppleScript, dBase, FoxPro, XML, SAML, HTML, UML, WML, VRML, SQL, DSML, HDML и др.

Язык низкого уровня (Low-level Language) – язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код.

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

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

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

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

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

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

3. Формальный – язык, построенный по правилам некоторого логического исчисления или формальной грамматики.

4. Графический – язык, предназначенный для написания программ машинной графики и пользования ими.

5. Язык манипулирования данными (ЯМД) – язык, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей.

6. Гибридный – язык, использующий также средства другого языка, и др.

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

Виды специализированных языков:

1. Языки для работы с базами данных:

– языки, входящие в состав промышленных клиент/серверных систем управления базами данных (PL-SQL в СУБД Oracle, Transact-SQL в Microsoft SQL Server);

– языки, являющиеся частью других видов СУБД (Visual FoxPro, Microsoft Access, Paradox и т.п.).

2. Языки, предназначенные для веб-программирования:

– языки, исполняемые на сервере, поддерживающем веб-сайт (PHP, Perl, VBScript);

– языки, исполняемые в браузере клиента (JavaScript, JScript, VBScript).

3. Языки для математических расчетов.

4. Языки для автоматизации работы определенных программных продуктов (VBA в Microsoft Office) и др.

К универсальным языкам можно отнести Visual C++, Visual C++.Net, Visual C#.Net, Visual J#.Net, Java, Delphi, Borland C#, Borland C++ Builder.

Хотя чаще всего специализированные языки происходят от универсальных языков, например, PHP, Perl и JavaScript произошли от языка Си++, VBScript и VBA – от языка Visual Basic, отличия между специализированными и универсальными языками очень значительны.

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

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

1. В них меньше объектно-ориентированных средств и средств доступа технологий СОМ+, DCOM, CORBA, к функциям API операционных систем.

2. Меньше средств многопоточного и распределенного программирования.

3. Используются только динамические типы (т.е. тип переменной определяется в зависимости от ее значения, а не при объявлении переменной), а не статические. Единственное исключение: в версии 9 языка Visual FoxPro можно использовать и статические типы переменных.

 

Структура современных языков программирования. Универсальные языки (и языки, производные от них):

1. Производные от языка Си++:

– на основе Си++:

– Borland C++, Watcom C++;

– Microsoft Visual C++;

– Microsoft Visual C++.Net;

– Borland C++ Builder;

– Borland C++ Builder.Net;

– JavaScript (специализированный язык для разработки страниц в Интернете);

– на основе Java:

– Java и Java2;

– Microsoft Visual J++;

– Microsoft Visual J#.Net;

– на основе Си#:

– Microsoft Visual C#.Net;

– Borland C# Builder.Net.

2. Производные от языка Паскаль:

– Borland Pascal, Turbo Pascal;

– Модула, Оберон, Component Pascal, Active Oberon, Zonnon;

– Borland Delphi;

– Borland Delphi.Net.

3. Производные от языка Бейсик:

– Microsoft Visual Basic;

– Visual Basic for Application;

– VBScript (специализированный язык для разработки страниц в Интернете);

– Microsoft Visual Basic.Net.

Специализированные языки:

1. Языки программирования, предназначенные для Интернета:

– РНР;

– Perl;

– JavaScript;

– VBScript.

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

– в локальных и файл-серверных СУБД:

– Microsoft Visual FoxPro (в одноименной СУБД);

– Visual Basic for Application (в СУБД Access);

– клиент/серверных промышленных СУБД:

– PL-SQL (в СУБД Oracle);

– Transact-SQL (в СУБД Microsoft SQL Server).

Языки программирования в СУБД с автономным языком:

– общий язык (Common Language) – машинный язык, общий для группы ЭВМ и используемых ими внешних устройств;

– эталонный язык (Reference Language) – язык, представляющий собой основу для всех его конкретных версий, являющихся вариантами адаптации эталонного языка к определенным условиям применения и назначения;

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

– декларативный (непроцедурный) язык (Declarative (Nonprocedural) Language) – язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог, QBE);

– императивный (процедурный) язык (Imperative Language) – язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения;

– язык функционального программирования, функциональный язык (Functional Language) – декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений;

– специализированный язык (Special Language) – язык программирования, ориентированный на решение определенного круга задач;

– язык описания страниц (PDL – Page Description Language) – специализированный язык, предназначенный для печатающих устройств. Предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript. Примером использования такого языка служит формат PDF (Portable Document Format), разработанный Adobe для хранения и представления печатных страниц в электронном виде;

– автономный язык (Freestanding Language) – специализированный язык высокого уровня в замкнутых СУБД (СУБД с автономным языком);

– язык конструирования интерактивных технологий – в СУБД язык, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы;

– язык манипулирования данными, ЯМД (DML – Data Manipulation Language), – в СУБД язык, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;

– язык обработки списков (List Language) – специализированный язык, предназначенный для описания процессов обработки данных, представленных в виде списков объектов;

– язык описания данных (DDL – Data Description Language) – язык, предназначенный для описания концептуальной схемы базы данных;

– язык описания хранения данных (DSDL – Data Storage Description Language) – язык, предназначенный для описания физической структуры (схемы) базы данных;

– язык представления знаний (KRL – Knowledge Representation Language) – декларативный или декларативно-процедурный язык, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог);

– язык публикаций (Publication Language) – язык, используемый для публикации алгоритмов и программ;

– язык спецификаций (Specification Language) – декларативный язык для задания спецификаций программ;

– проблемно-ориентированный язык (Problem-Oriented Language) – язык программирования, предназначенный для решения определенного класса задач (проблем);

– процедурный (процедурно-ориентированный) язык (Procedure-Oriented Language) – проблемно-ориентированный язык, который облегчает выражение процедуры как точного алгоритма;

– язык реального времени (Real-Time Language) – язык, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада);

– язык управления пакетом (Batch Control Language) – набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных;

– язык управления заданиями (Job-Control Language) – язык, на котором записывается последовательность команд, управляющих выполнением задания. В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями преобразуемыми объектами являются целые программы и выходные потоки данных, обработанных этими программами;

– общесетевой командный язык (CNCL – Common Network-Command language) – стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД;

– системный язык (System Language) – язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;

– язык общего назначения, универсальный язык (Universal Programming Language) – язык программирования, ориентированный на решение задач практически из любой области и объединяющий на единой методической основе наиболее существенные свойства и средства современных машино- и проблемно-ориентированных языков программирования (например, язык ассемблера, ПЛ/1 и др.);

– язык, ориентированный на пользователя (User-Oriented Language) – слабоформализованный язык программирования, близкий к естественному языку;

– язык меню (Menu Language) – язык диалога пользователя с системой, основанный на использовании меню.

 

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

Ада (Ada) – язык программирования высокого уровня, ориентированный на применение в системах реального времени и предназначенный для автоматизации задач управления процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.) ЭВМ. Разработан по инициативе Министерства обороны США в 1980-х годах. Назван в честь английского математика Ады Августы Байрон (Лавлейс), жившей в 1815-1851 гг.;

Алгол (ALGOL – ALGOrithmic Language) – язык программирования высокого уровня, ориентированный на описание алгоритмов решения вычислительных задач. Был создан в 1958 г. специалистами западноевропейских стран для научных исследований. Версия этого языка Алгол-60 была принята Международной конференцией в Париже (1960) и широко использовалась на ЭВМ второго поколения. Версия Алгол-68, разработанная группой специалистов Международной федерации по обработке информации (ИФИТТ) в 1968 г., получила статус международного универсального языка программирования, ориентированного на решение не только вычислительных, но и информационных задач. Хотя в настоящее время Алгол практически не используется, он послужил основой или оказал существенное влияние на разработку более современных языков, например Ада, Паскаль и др.;

Бейсик (BASIC – Beginner's All-purpose Symbolic Instruction Code) – язык программирования высокого уровня, разработанный в 1963-1964 гг. в Дартмутском колледже Томасом Куртом и Джоном Кемени. Первоначально предназначался для обучения программированию. Отличается простотой, легко усваивается начинающими программистами благодаря наличию упрощенных конструкций языка Фортран и встроенных математических функций, алгоритмов и операторов. Существует множество различных версий Бейсика, которые не полностью совместимы друг с другом. Некоторые реализации Бейсика включают средства обработки данных и наборов данных. Большинство версий Бейсика используют интерпретатор, который преобразует его компоненты в машинный код и позволяет запускать программы без промежуточной трансляции. Некоторые более совершенные версии Бейсика позволяют использовать для этой цели трансляторы. На IBM PC широко используются Quick Basic фирмы Microsoft, Turbo Basic фирмы Borland и Power Basic (усовершенствованная версия Turbo Basic, распространяемая фирмой Spectra Publishing). В начале 1999 г. фирма Microsoft выпустила версию языка Visual Basic 6.0 (VB 6.0), предназначенного для создания многокомпонентных программных приложений для систем уровня предприятий;

Кобол (COBOL – COmmon Buisiness-Oriented Language) – язык программирования высокого уровня, разработанный в конце 1950-х годов ассоциацией CODASYL для решения коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических, информационных и других задач;

Лисп (Lisp – сокращение от List Processing) – алгоритмический язык, разработанный в 1960 г. Дж. Маккарти и предназначенный для манипулирования перечнями элементов данных. Используется преимущественно в университетских лабораториях США для решения задач, связанных с искусственным интеллектом. В Европе для работ по искусственному интеллекту предпочитают использовать Пролог;

Лого (Logo, от греч. logos – слово) – язык программирования высокого уровня, разработан в Массачусетском технологическом институте в 1968 г. для целей обучения математическим понятиям. Используется также в школах и пользователями ПЭВМ при написании программ для создания чертежей на экране монитора и управления перьевым графопостроителем;

Паскаль (PASCAL – акроним с французского – Program Applique a la Selection et la Compilation Automatique de la Litterature) – процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х годов Никлаусом Виртом, первоначально предназначался для обучения программированию в университетах. Назван в честь французского математика XVII в. Блеза Паскаля. В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым в том числе для написания больших и сложных программ. Существует ряд версий языка (например, ЕТН Pascal, USD Pascal, Turbo Pascal) и систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США);

Пролог (PROLOG – PROgramming in LOGic) – язык программирования высокого уровня декларативного типа, предназначенный для разработки систем и программ искусственного интеллекта. Относится к категории языков пятого поколения. Был разработан в 1971 г. в университете г. Марсель (Франция), относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия – Пролог 6.0;

Си (Q – многоцелевой язык программирования высокого уровня, разработанный Денисом Ритчи в начале 1970-х годов на базе языка BCPL. Используется на мини-ЭВМ и ПЭВМ. Является базовым языком операционной системы UNIX, однако применяется и вне этой системы для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе – Turbo С (фирмы Borland), Microsoft С и Quick С (фирмы Microsoft), а также Zortech С (фирмы Symantec);

Си++ (C++) – язык программирования высокого уровня, созданный Бьярном Страустрапом на базе языка Си. Является его расширенной версией, реализующей принципы объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США);

– Си# (Си-шарп, С#) – объектно-ориентированный язык программирования, о разработке которого в 2000 г. объявила фирма Microsoft. По своему характеру он напоминает языки Си++ и Java и предназначен для разработчиков программ, использующих языки Си и Си++, для того чтобы они могли более эффективно создавать интернет-приложения. Указывается, что Си# будет тесно интегрирован с языком XML;

Фортран (FORTRAN – FORmula TRANslation) – язык программирования высокого уровня, разработанный фирмой IBM в 1956 г. для описания алгоритмов решения вычислительных задач. Относится к категории процедурно-ориентированных языков. Наиболее распространенными версиями этого языка являются Фортран-IV, Фортран-77 и Фортран-90. Используется на всех классах ЭВМ. Последняя его версия также применяется на ЭВМ с параллельной архитектурой;

AppleScript – машинозависимый (ориентирован на работу с ПЭВМ типа Macintosh фиры Apple), близкий к естественному английскому язык программирования, предназначенный для автоматизации повторяющихся задач, преимущественно связанных с процессами компьютерной графики (в том числе обработкой результатов сканирования, вводом изображений, цветоделением, составлением каталогов, передачей печатных документов в Сети и др.). Планировалась разработка версии этого языка для PowerPC;

Clipper – язык высокого уровня и система программирования, предназначенные для разработки программ для ПЭВМ, преимущественно – систем управления большими объемами данных. Владельцем и разработчиком языка и системы Clipper является фирма Nantucket (США). Начало работ по их созданию связано с разработкой компилятора для dBase (см. ниже) и относится к 1984 г. (год основания фирмы Nantucket Барри Ребеллом и Брайаном Расселом). Первые программные продукты Clipper – ClipperWinter'84 (май 1985 г.), ClipperWinter'85 (январь 1986 г.), МсМах (версия для ПК Macintosh – сентябрь 1986 г.) и ClipperSummer'87 (декабрь 1987 г.). Летом 1990 г. была выпущена версия языка Clipper 5.0, получившая широкое распространение в России. Она реализует концепцию открытой архитектуры и представляет собой язык, компилятор и систему разработки программ для ПЭВМ, включающую набор команд и функций, препроцессор, компоновщик, набор утилит (в том числе отладчик и встроенную документацию);

dBASE – язык программирования высокого уровня, предназначенный для создания пакетов прикладных программ, связанных с манипулированием большими объемами данных (Xbase), а также семейство программ для ПЭВМ, предназначенное для манипулирования большими объемами данных. Первая версия языка dBASE II вышла в свет в начале 1980-х годов, в августе 3994 г. была выпущена версия dBASE 5.0 для Windows;

FoxPro – объектно-ориентированный язык, предназначенный для создания пакетов прикладных программ, в том числе для современных операционных систем, например версия этого языка FoxPro для Windows;

SGML (Standardized General Markup Language) – стандартизованный обобщенный язык разметки. Разработка языка была вызвана необходимостью создания средств описания документов и правил их построения. Для задания структуры документа используются специальные метки – теги, которые отделяют друг от друга элементы документа и файлы определения типа документа (Document Type Definition – DTD), выполняющие функции «грамматики» и определяющие структуру и содержание каждого элемента в документе. Принят ISO в качестве стандарта в 80-е годы. Сложность этого языка затруднила его широкое использование; – HTML (Hypertext Markup Language) – язык разметки гипертекста, разработан в исследовательском центре CERN в 1992 г. Он является производным от SGML. HTML устанавливает формат гипермедийных документов в Сети. HTML-документы представляют собой ASCII-файлы, доступные для просмотра и редактирования в любом текстовом редакторе. Отличием от обычного текстового файла является наличие в HTML-документах специальных команд – тегов, которые определяют правила форматирования документа.

 

Контрольные вопросы

 

1. Перечислите виды программного обеспечения.

2. Что относится к общему и специальному ПО?

3. Что относится к базовому ПО?

4. Что относится к системному ПО?

5. Что относится к служебному ПО?

6. Что относится к инструментарию технологии программирования?

7. Как классифицируется ПО?

8. Какие вы знаете языки программирования?

9. Перечислите языки программирования в СУБД с автономным языком. 10. Назовите языки программирования низкого уровня.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: