Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Язык и система программирования – понятие, сущность).pdf
Добавлен: 28.03.2023
Просмотров: 299
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1. Классификация по поддерживаемым методологиям
2.2. Классификация по принадлежности к семействам
2.3. Классификация по ориентации на предметные области
2.4. Классификация по степени абстракции от аппаратуры
2.5. Классификации по истории языков программирования
ГЛАВА 3. СОВРЕМЕННЫЕ ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
Введение
Актуальность. В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. К сегодняшнему дню насчитывают шесть поколений языков программирования. Каждое из последующих поколений по своей функциональной мощности качественно отличается от предыдущего. С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки. Появились языки, применяемые в различных офисных программах. В настоящее время языки программирования применяются в самых различных областях человеческой деятельности, таких как научные вычисления (языки C++, FORTRAN, Java), системное программирование (языки C++, Java), обработка информации (языки C++, COBOL, Java), искусственный интеллект (LISP, Prolog), издательская деятельность (Postscript, TeX), удаленная обработка информации (Perl, PHP, Java, C++), описание документов (HTML, XML).
С течением времени одни языки развивались, приобретали новые черты и остались востребованы, другие утратили свою актуальность и сегодня представляют в лучшем случае чисто теоретический интерес.
ГЛАВА 1. ЯЗЫК И СИСТЕМА ПРОГРАММИРОВАНИЯ – ПОНЯТИЕ, СУЩНОСТЬ.
Рассмотрим для начала понятие программирования. В широком смысле слова программирование - это процесс составления плана действий (или программ). В узком смысле – раздел прикладной математики, изучающий способы и методы реализации алгоритма решения конкретной задачи, составление программы, ее отладку и эксплуатацию
Что же касается языка программирования, то «Математический энциклопедический словарь» дает следующее определение: «Программирования язык — формальная знаковая система, служащая общению человека с ЭВМ»1.
Еще одно строгое определение из классического учебника «Курс программирования» Е. Жоголева и Н. Трифонова (М., «Наука», 1974): «Алгоритмический язык — это набор символов (алфавит языка), система правил образования из этих символов конструкций, с помощью которых представляются определенные компоненты алгоритма (синтаксис языка), и система правил истолкования этих конструкций, позволяющих однозначно воспроизводить процесс переработки данных (семантика языка)».
Брайан Хигман (Brian Higman) в книге «Сравнительное изучение языков программирования» предлагает следующее определение: «Назначение языка программирования состоит в хранении и передаче упорядоченных последовательностей инструкций, или алгоритмов»2.
На современном этапе мы можем сказать, что язык программирования(алгоритмический язык) — набор правил, определяющих, какие последовательности символов составляют программу (синтаксические правила) и какие вычисления описывает программа (семантические правила).
ГЛАВА 2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1. Классификация по поддерживаемым методологиям
Для ориентации в таком разнообразии предлагалось и предлагается огромное количество классификаций языков программирования.
В настоящее время сложилось довольно много классификаций языков программирования. Далее мы приведем самые известные из них.
Классификация языков по поддерживаемым методологиям появилась примерно в 80-х годах XX века. Мы выделили следующие основные группы языков:
- языки императивного программирования и две важнейшие подгруппы: языки структурного императивного программирования. Эти языки более известны под кратким именем — языки структурного программирования; языки императивного параллельного программирования. Эти языки также обычно называют кратко — языки параллельного программирования;
- языки объектно-ориентированного программирования;
- языки функционального программирования;
- языки логического программирования;
- языки программирования в ограничениях.
2.2. Классификация по принадлежности к семействам
Основная задача классификации языков по принадлежности к семействам — проследить их родственные взаимосвязи (фактически, построить генеалогическое дерево) с целью выяснения их влияния друг на друга и, следовательно, на характеристики и свойства языков. Это нечеткая классификация, которая может вызвать спорное отношение к ней. Выделим девять основных семейств.
Семейство универсальных языков.
Семейство уникальных языков.
Семейство языков параллельного программирования.
С-семейство языков.
Pascal-семейство языков.
Ada-семейство языков.
Simula-семейство языков.
Lisp-семейство языков.
Prolog-семейство языков.
2.3. Классификация по ориентации на предметные области
Язык программирования может быть специализированным для некоторой предметной области. Выделим девять таких областей, хотя конечно их гораздо больше.
Языки форматирования текстов..
Языки разметки..
Языки скриптов..
Промежуточные языки программирования..
Языки программирования агентов.
Языки создания графики..
Языки описания аппаратуры..
Языки описания виртуальной реальности..
Языки конфигурирования..
2.4. Классификация по степени абстракции от аппаратуры
По степени абстракции от машины можно выделить три группы языков.
Языки низкого уровня. Такие языки имеют простые машиноподобные команды и осуществляют прямой доступ к памяти. Пример — ассемблер для любой архитектуры.
Языки высокого уровня. Языки предоставляют возможность определять сложные структуры данных, доступ к памяти осуществляется через операции. Примерами языков этого уровня являются Pascal, С и Ada.
Языки сверхвысокого уровня. Команды исполняются на полностью абстрактной машине, полностью скрыт доступ к памяти. Пример таких языков — Prolog, SETL, APL, Miranda.
2.5. Классификации по истории языков программирования
Существуют также и классификации по истории языков программирования («по поколениям»). Довольно разумен подход Дж. Вэгнера, который выделяет четыре поколения языков. К первому (1954—1958) он относит такие языки, как Fortran I, Algol-58, Flowmatic, IPL-V, предоставившие возможность работы с математическими формулами. Второе поколение (1959—1961) у Вэгнера составляют Fortran II (подпрограммы, раздельная компиляция), Algol-60 (блочная структура, типы данных), COBOL (описание данных, работа с файлами), LISP (обработка списков, указатели). В третьем поколении (1962—1970) присутствуют PL/1 (Fortran + Algol + COBOL), Algol-68 (преемник ALGOL-60), Pascal (развитие Algol-60), Simula (классы, абстрактные данные). Наконец, к четвертому поколению (1970—1980-е гг.) Вэгнер относит множество языков, из которых лишь немногие доказали свою жизнеспособность.3
ГЛАВА 3. СОВРЕМЕННЫЕ ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
3.1. Basic
Джон Кемени и Томас Курц, сотрудники математического факультета Дармутского коледжа, написали простой и легкий в изучении язык, который назвали Бейсик (Basic Beginner’s All-purpose Symbolic Instruction Code - универсальный код символических инструкций для начинающих).
В конце 1975 г. Был создан первый интерпретатор Крошки-Бейсика, состоящий примерно из 20 страниц восьмеричного кода. Его создали два программиста-любителя Дик Уиппл и Джон Арнольд. В США выпускался журнал “Dr. Dobb’s Journal of computer Calisthenics & Orthodonta: Running Light without Overbyte.”, посвященный исключительно Крошке-Бейсику. В это же время изготовитель “Альтаира” фирма MITS (Micro Instrumentation and Telemetry Systems) начала продавать собственную версию языка Бейсик. Эту версию в 1975 г. написал первокурсник Гарвардского университета Бил Гейтс и его друг Пол Аллен, молодой программист фирмы “Хониуэл”.
Эпоха Крошки-Бейсика завершилась в конце 70-х годов. Микрокомпьютеры выпускались теперь в полностью собранном виде, изготовители встраивали интерпретаторы версий Бейсика непосредственно в ПЗУ компьютера. Вскоре наибольшую популярность завоевал М-Бейсик, с продажи которого Гейтс и Ален начали деятельность созданной ими компании Microsoft Corporation. На протяжении многих лет Кемени и Курц периодически пересматривали первоначальную версию Бейсика и даже заменили оператор GOTO более сложными управляющими структурами.
Характерными чертами языка являются:
диалоговый режим работы;
нумерация строк;
вещественный и символьный типы данных,
управляющие конструкции;
все переменные являются глобальными,наличие массивов.
3.2. Pascal
Язык программирования Pascal был создан Никлаусом Виртом, и назван в честь французского философа и математика XVIIв. Блеза Паскаля. В то время Вирт был профессором информатики в Федеральном техническом университете в Швейцарии и нуждался в языке, с помощью которого можно было обучать студентов навыкам программирования.
Концепция Паскаля была разработана Н. Виртом примерно в 1970 году и Паскаль быстро получил широкое распространение благодаря легкости его изучения, наглядности составленных на нем текстов программ. Поскольку Паскаль послужил основой для разработки других языков программирования, таких как Ада и Модула-2, и поскольку многие языки содержат аналогичные Паскалю структуры, знание Паскаля является солидной базой для изучения других языков программирования.
В середине 70-х годов была создана попытка разработать международный стандарт на Паскаль. В результате в 1982 году появился стандарт ИСО 7185.
Язык Паскаль стараниями Андерса Хейлсберга превратился в мощную профессиональную систему программирования Turbo Rascal. После просуществовавшей сравнительно недолго и не получившей широкое распространения версии 1.0 в середине 1984 года появляется версия 2.0. Распространение которой пошло стремительными темпами. К осени 1985 года появляется версия3.0, отличающаяся от версии 2.0 следующими особенностями: компилятор и редактор стали работать существенно быстрее, появилась возможность передачи параметров в программу с помощью команды RUN, стал возможным вызов MS-DOS из программы, стала удобной работа с файлами. С начала 1988 года начинает распространяться версия 4.0. Здесь Турбо Паскаль представлен в совершенно новой форме. Не только становится еще более быстрым компилятором, но и появляется совершенно новое программное окружение. Появилась возможность разбиения программы на части (модули), компилируемые по отдельности. К осени 1988 года появилась версия 5.0 с еще белее развитым программным окружением. Здесь заслуживает внимания прежде всего встроенный отладчик. Турбо Паскаль может использоваться в большинстве существующих для персональных компьютеров операционных систем.
3.3. Delphi
Появление инструментальных средств Borlаnd Pascal with Objects и Delphi для разработки программ в среде Windows лишний раз показала какие по истине неисчерпаемые возможности таит в себе Паскаль. Borland Pascal и используемый в Delphi язык Object Pascal основываются на Turbo Pascal и развивают его идеи.
Delphi - компилятор языка Pascal. Delphi 1 был первым инструментарием разработки Windows приложений, объединившим в себе оптимизирующий компилятор, визуальную среду программирования и мощные возможности работы с базами данных. Годом позже Delphi 2 предложил все то же, но на новом уровне современной 32-битной операционной системы Windows 95 и Windows NT. Кроме того, Delphi 2 предоставил программисту 32-битовый компилятор, создававший более быстрые и эффективные приложения, мощные библиотеки объектов.4
Продолжительная работа команды разработчиков Delphi привела к появлению в третьей версии продукта расширенного набора инструментов для создания приложений, возможности использования технологий COM для разработки приложений WWW и многих других современных технологий программирования.
Delphi 4 является очередным шагом в эволюции компиляторов Паскаля с тех времен, когда более 16 лет назад Андерс Хейлсберг создал первый компилятор Turbo Pascal