Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Выбор языков программирования).pdf
Добавлен: 31.03.2023
Просмотров: 306
Скачиваний: 1
ЯП первого поколения представляли собой набор машинных команд в двоичном (бинарном) или восьмеричном формате, которым определялся архитектурой конкретной ЭВМ. Каждый тип ЭВМ имел свой ЯП, программы на котором были пригодны только для данного типа ЭВМ. От программиста при этом требовалось хорошее знание не только машинного языка, но и архитектуры ЭВМ.
Второе поколение ЯП характеризуется созданием языков ассемблерного типа (ассемблеров, макроассемблеров), позволяющих вместо двоичных и других форматов машинных команд использовать их мнемонические символьные обозначения (имена). Являясь существенным шагом вперед, ассемблерные языки все еще оставались машинно-зависимыми, а программист все также должен был быть хорошо знаком с организацией и функционированием аппаратной среды конкретного типа ЭВМ. При этом ассемблерные программы все так же затруднительны для чтения, трудоемки при отладке и требуют больших усилий для переноса на другие типы ЭВМ. Однако и сейчас ассемблерные языки используются при необходимости разработки высокоэффективного программного обеспечения (минимального по объему и с максимальной производительностью)
Третье поколение ЯП начинается с появления в 1956 г. первого языка высокого уровня — Fortran, разработанного под руководством Дж. Бэкуса в фирме IВМ. За короткое время Fortran становится основным ЯП при решении инженерно-технических и научных задач. Первоначально Fortran обладал весьма ограниченными средствами обеспечения работы с символьной информацией и с системой ввода-вывода. Однако постоянное развитие языка сделало его одним из самых распространенных ЯВУ на ЭВМ всех классов — от микро- до суперЭВМ, а его версии используются и для вычислительных средств нетрадиционной параллельной архитектуры.
Вскоре после языка Fortran появились такие ныне широко известные языки, как Аlgol, Соbоl, Ваsiс, РL/1, Раscal, АРL, АDА, С, Forth, Lisp, Моdula и др. В настоящее время насчитывается свыше 2000 различных языков высокого уровня.
Языки четвертого поколения носят ярко выраженный непроцедурный характер, определяемый тем, что программы на таких языках описывают только что, а не как надо сделать. В программах формируются скорее соотношения, а не последовательности шагов выполнения алгоритмов. Типичными примерами непроцедурных языков являются языки, используемые для задач искусственного интеллекта (например, Рrolog, Langin). Так как непроцедурные языки имеют минимальное число синтаксических правил, они значительно более пригодны для применения непрофессионалами в области программирования.
Второй тенденцией развития ЯП четвертого поколения являются объектно-ориентированные языки, базирующиеся на понятии программного объекта, впервые использованного в языке Simulа-67 и составившего впоследствии основу известного языка Smalltalk. Программный объект состоит из структур данных и алгоритмов, при этом каждый объект знает, как выполнять операции со своими собственными данными. На самом деле, различные объекты могут пользоваться совершенно разными алгоритмами при выполнении действий, определенных одним и тем же ключевым словом (так называемое свойство полиморфизма). Например, объект с комплексными числами и массивами в качестве данных будет использовать различные алгоритмы для выполнения операции умножения. Такими свойствами обладают объектно-ориентированные Pascal Basic, С++, Smalltalk, Simulа, и ряд других языков программирования.
Третьим направлением развития языков четвертого поколения можно считать языки запросов, позволяющих пользователю получать информацию из баз данных. Языки запросов имеют свой особый синтаксис, который должен соблюдаться, как и в традиционных ЯП третьего поколения, но при этом проще в использовании. Среди языков запросов фактическим стандартом стал язык SQL .
И, наконец, четвертым направлением развития являются языки параллельного программирования (модификация ЯВУ Fortran, языки Оссаm, SISAL, FР и др.), которые ориентированы на создание программного обеспечения для вычислительных средств параллельной архитектуры (многомашинные, мультипроцессорные среды и др.), в отличие от языков третьего поколения, ориентированных на традиционную однопроцессорную архитектуру.
К интенсивно развивающемуся в настоящее время пятому поколению относятся языки искусственного интеллекта, экспертных систем, баз знаний (InterLisp, ExpertLisp, IQLisp, SIAL и др.), а также естественные языки, не требующие освоения какого-либо специального синтаксиса (в настоящее время успешно используются естественные ЯП с ограниченными возможностями — Clout, Q&А, НАL и др.).
Глава 3 Классификация сред программирования
Для того чтобы ЭВМ могла решать задачи, составленные человеком, она должна последовательно выполнять инструкции некоторой программы-алгоритма. Совокупность таких инструкций, направленных на решение конкретной задачи, называется компьютерной программой. Но это еще не все.
Компьютер не понимает естественного языка человека, а понимает только свой язык — машинный код. Что касается языка программирования, то он с помощью фиксированных систем обозначений и правил позволяет описывать алгоритмы и структуры данных, которые впоследствии будут переведены транслятором в машинный код.
Все языки программирования можно разделить на языки низкого, высокого и сверхвысокого уровней.
Языки низкого уровня — это средство записи инструкций компьютеру простыми приказами-командами на аппаратном уровне. Такой язык зависит от структуры конкретной ЭВМ и иногда называется машинно-ориентированным языком. Этот язык плохо приспособлен для использования человеком, ведь запись программы на этом языке представляет собой последовательность нулей и единиц, и мало шансов, что сложная задача будет запрограммирована безошибочно. Для упрощения программирования был разработан язык символического кодирования (автокод, или язык ассемблера). Программа, написанная на таком языке, ближе человеку, но все равно требует от программиста широких познаний в этой области.
Следующая группа — языки программирования высокого уровня. Это языки, которые допускают описание задачи в наглядном, легко воспринимаемом виде. Их отличительной особенностью является ориентация не на систему команд той или иной ЭВМ, а на систему инструкций, характерных для записи алгоритмов определенного класса. К языкам программирования высокого класса относятся Бейсик, Фортран, Алгол, Паскаль, Си и др.[15]
К языкам программирования сверхвысокого уровня можно отнести Алгол-68, в котором сделана попытка формализовать описание языка, приведшая к появлению двух типов программ: абстрактной и конкретной. Первый тип программы — абстрактный — создается программистом, конкретный — выводится из первого. Существует предположение, что при таком подходе принципиально невозможно породить синтаксически (а на практике и семантически) неверную конкретную программу.
Алгоритмический язык Паскаль был разработан в 1973 г. швейцарским математиком Никлаусом Виртом для обучения студентов структурному программированию. Язык получил свое название в честь французского математика Блеза Паскаля (1623–1662). Выбор Паскаля для обучения программированию объясняется рядом его достоинств. Во-первых, этот язык полно отражает идеи структурного программирования. Во-вторых, Паскаль предоставляет гибкие возможности в отношении используемых структур данных. Большое внимание в языке уделено вопросу повышения надежности программ: средства языка позволяют осуществлять достаточно полный контроль правильности использования данных различных типов и программных объектов как на этапе трансляции программ, так и на этапе их выполнения. Благодаря перечисленным возможностям, Паскаль широко применяется не только в области обучения, но и в практической работе.
Программа на Паскале записывается в виде последовательности символов, образующих алфавит языка. Алфавит включает:
• заглавные и прописные латинские буквы;
• арабские цифры;
• знаки препинания (: ; , .);
• знаки операций;
• некоторые спецсимволы
Научно-образовательное ООО "БИП-С"
Белорусский техникум бизнеса и права
Языки программирования высокого уровня
Язык программирования Паскаль
Методические указания и задания
к лабораторным работам
для учащихся ССУЗ специальности Т1002
«Программное обеспечение информационных технологий »
Минск -2002
2
Одно из наиболее общих определений языка программирования — это инструмент для планирования поведения некоторого устройства-исполнителя. [16]
Под такое очень общее (хотя и полезное) определение подходят, например, как средства составления программ для жаккардовых ткацких станков (XVIII в.) и калькулятора Ч.Бэббиджа (XIX в.), так и системы программирования современных компьютеров. Исходя из целей курса ограничим это определение: в качестве управляемого устройства будем рассматривать только компьютеры (вычислительные системы). Планы, управляющие поведением компьютеров, называются компьютерными программами. Тогда уточненное определение будет выглядеть так: язык программирования — это нотация для записи компьютерных программ.
Однако области применения современных компьютеров настолько обширны и разнообразны, что существует большое число специализированных языков, подпадающих под наше определение. Например, это язык программирования баз данных SQL . Исполнителем для этого языка является система управления базами данных (СУБД). Данный язык позволяет описывать и создавать структуры баз данных, манипулировать данными (добавлять, модифицировать и удалять данные из базы), составлять запросы на выборку данных. Другой пример специализированного языка — язык разметки гипертекста HTML . Тексты на HTML управляют отображением гипертекста на экране компьютера. В данном случае исполнителем является программа-обозреватель (веб-браузер). Вообще можно сказать, что любая прикладная программа с нетривиальным форматом обрабатываемых ею данных определяет некоторый узкоспециализированный язык. Точно также, как и языки специальных средств, таких как оболочки экспертных систем и т.д.[17]
Дальнейшее развитие языковых средств шло по пути создания машинно-независимых языков, позволяющих писать программы на любой доступной ЭВМ с предусмотренной возможностью переноса на более совершенную архитектуру. В мире насчитывается несколько сотен символических языков программирования различных структур и возможностей, которые могут быть классифицированы по различным признакам. Если в качестве признака классификации взять синтаксис образования конструкций языков программирования, то их можно условно разделить на следующие классы:
машинные языки (computer language) – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
машинно-ориентированные языки (computer-oriented language) – языки программирования, которые отражают структуру конкретного типа компьютера (Ассемблеры);
алгоритмические языки (algorithmic language) – не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);
процедурно-ориентированные языки (procedure-oriented language) – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);
проблемно-ориентированные языки (universal programming language) – языки программирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.);
интегрированные системы программирования.[18]
Если в качестве признака классификации взять принадлежность к одному из оформившихся к настоящему времени стилей программирования, каждому из которых соответствует своя собственная модель вычислений, то языки программирования можно условно разделить на следующие классы:
процедурные;
функциональные;
логические;
объектно-ориентированные. [19]
♦ Основные категории программ Java:
• приложение (application) — аналог обычной прикладной программы:
• апплет (applet) — специализированная программа с ограниченными возможностями, работающая в окне WWW-документа под управлением браузера;
• Мидлет (midlet) — специализированная программа с ограниченными возможностями, работающая на мобильном устройстве;
• сервлет (servlet) — специализированная программа с ограниченными возможностями, работающая в WWW на стороне сервера;
• серверное приложение (Enterprise application) — предназначено для многократного вьтолнения на стороне сервера:
• библиотека (Java Class Library библиотека классов, либо NetBeans Module модуль платформы NetBeans) — предназначена для многократного использования программами классов Java.[20]
Краткие итоги по главе
♦ Алфавит языка Java состоит из букв, десятичных цифр и специальных символов. Буквами считаются латинские буквы (кодируются в стандарте ASCII), буквы национальных алфавитов (кодируются в стандарте Unicode), а также соответствующие им символы, кодируемые управляющими последовательностями.
♦ В программах разрешается пользоваться десятичными и шестнадцатеричными целыми числовыми константами. Шестнадцатеричная константа начинается с символов Ох или OX, после чего идет само число в шестнадцатеричной нотации.