Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Выбор языков программирования).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, после чего идет само число в шестнадцатеричной нотации.