Файл: Классификация языков высокого уровня..pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.06.2023

Просмотров: 539

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

1.1Языки программирования

1.2 Краткая история языков программирования

1.3 Языки программирования высокого уровня

2 Спецификация программ и стандартизация ЯП

2.1.1 Императивное программирование

2.1.2 Объектно-ориентированное программирование

2.1.3 Функциональное программирование

2.1.4 Логическое программирование

2.2.1 Язык функционального программирования РЕФАЛ

2.2.2 Язык программирования C (Си)

2 .2 .3 Язык программирования Prolog

2.2.4 Язык программирования Lisp (Лисп)

2.2.5 Язык программирования FORTRAN (ФОРТРАН)

2.2.6 Язык программирования ALGOL (АЛГОЛ)

2.2.7 Язык программирования COBOL (КОБОЛ)

2.2.8 Язык программирования Ada (Ада)

2.2.9 Паскаль (язык программирования)

2.2.10 История, назначение, характеристика Java

2.2.12 Язык программирования Smalltalk

3.1 Роль языков программирования

3.2 Области применения

3.3. Какой язык следует считать хорошим?

3.4 Структура программы на языке высокого уровня

Заключение

Список литературы

Введение

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

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

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

В этой курсовой я постараюсь ответить на вопрос: классификация языков высокого уровня. По подробней рассказать о языках и их отношение к определенным группам языков программирования .

1.1Языки программирования

Программирование - это искусство создавать программные продукты, которые написаны на языке программирования. Язык программирования – это формальная знаковая система, которая предназначена для написания программ, понятной для исполнителя (в нашем рассмотрении – это компьютер).

Язык программирования ( англ. Programming language ) - система обозначений для описания алгоритмов и структур данных, определенная искусственная формальная система, средствами которой можно выражать алгоритмы. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполняет исполнитель ( компьютер ) под ее управлением.

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


Языки программирования низкого уровня

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

Пример машинного кода и представления его на ассемблере

Трансляторы делятся на:

компиляторы - превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe).

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

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

Преимущества

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

Недостатки

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

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


Ассемблер - язык низкого уровня, что широко применяется до сих пор.

Языки программирования высокого уровня

Можно сказать более понятными человеку, чем компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому созданные программы легко переносятся с компьютера на компьютер. В основном достаточно просто перекомпилировать программу под определенную компьютерную архитектурную и операционную систему. Разрабатывать программы на таких языках гораздо проще и ошибок допускается меньше. Значительно сокращается время разработки программы, что особенно важно при работе над большими программными проектами.

К языкам программирования высокого уровня относятся:

Фортран

Кобол

Алгол

Pascal

Java

C

C++

C#

Objective C

Smalltalk

Delphi

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

1.2 Краткая история языков программирования

С тех пор как в 50-е гг. появились первые языки программирования высокого уровня, методы их разработки и реализации постоянно развиваются. Те языки, которые описаны здесь, появились в разное время: первые версии FORTRAN и LISP были разработаны в 50-е гг., история языков Ada, С, Pascal, Prolog и Smalltalk начинается в 70-х гг„ в 80-е возникли такие языки, как C++, ML, Perl, Postscript, а язык Java — самый молодой, он появился в 90-х. В 60-е и 70-е гг. новые языки часто возникали при разработке больших проектов по созданию программного обеспечения как их составная часть. Когда в 70-е гг. Министерством обороны США в рамках основного проекта разработки языка Ada был составлен отчет об используемых в то время языках программирования, выяснилось, что в различных оборонных проектах было использовано более 500 языков.

1.1.1. Разработка первых языков

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


В начале 50-х начали появляться первые языки, использовавшие символьные системы обозначений. Грейс Хупер (Grace Hooper) возглавил в компании Univac группу, которая разрабатывала язык А-0, а Джон Бэкус (John Backus) создал язык Speedcoding для IBM 701. Оба эти языка предназначались для преобразования простых арифметических выражений в исполняемый машинный код.

Настоящий прорыв произошел в 1957 г., когда Бэкус руководил группой по созданию языка FORTRAN, или транслятора формул (FORmulaTRANslator). На ранней стадии разработки FORTRAN был ориентирован на численные вычисления, но конечной целью был вполне законченный язык программирования, включающий в себя управляющие структуры, условные операторы и операторы ввода-вывода. Поскольку немногие верили, что получится язык, способный конкурировать с языком ассемблера, в котором машинные команды кодировались вручную, основной задачей было создать эффективный исполняемый код, поэтому многие операторы разрабатывались с учетом специфики ЭВМ IBM 704. Концепции языка FORTRAN типа механизма трехветвевого перехода вытекала напрямую из аппаратной архитектуры IBM 407, а операторы типа READ INPUT ТАРЕ сегодня выглядят весьма причудливо. Все это выглядело не очень изящно, но в то время еще не задумывались об элегантном программировании, зато разработанный язык позволял писать программы, которые выполнялись достаточно быстро на ЭВМ упомянутого типа.

FORTRAN оказался весьма удачным языком и оставался доминирующим вплоть до 70-х гг. Следующая версия FORTRAN вышла в 1958 г. и стала называться FORTRAN II, а спустя несколько лет появился FORTRAN IV. Поскольку каждый производитель ЭВМ реализовывал для своих компьютеров собственную версию языка, то, понятное дело, царил хаос. В 1966 г. FORTRAN IV стал стандартом под названием FORTRAN 66 и с тех пор дважды подвергался пересмотру, в результате чего возникли стандарты FORTRAN 77 и FORTRAN 90. Наличие большого количества программ, написанных на ранних версиях языка, явилось причиной того, что создаваемые трансляторы должны были удовлетворять требованиям обратной совместимости, что препятствовало внедрению в язык новых идей и концепций программирования.

Поскольку FORTRAN оказался столь успешным языком, в Европе возникли опасения, что IBM будет доминировать в компьютерной отрасли. Немецкое общество прикладной математики (German society of applied mathematics — GAMM) создало комитет по разработке универсального языка. В то же время Association for Computing Machinery (ACM) организовала похожий комитет в США. Несмотря на то, что у европейцев было некоторое беспокойство по поводу господства американцев, оба этих комитета слились в один. Под руководством Питера Наура (Peter Naur) этот комитет разработал IAL (International Algorithmic Language). Предлагавшееся название ALGOL (ALGOrithmic Language) было вначале отвергнуто. Но поскольку оно стало общеупотребительным, официальное имя IAL пришлось впоследствии изменить на ALGOL 58. Новая версия появилась в 1960 г., и ALGOL 60 (с небольшими изменениями, сделанными в 1962 г.) с 60-х и до начала 70-х гг. прошлого века был стандартом академического языка программирования.


Если FORTRAN разрабатывался для эффективного использования на IBM 704, перед разработчиками языка ALGOL стояли совершенно другие цели, а именно:

1. Сделать систему обозначений в ALGOL как можно ближе к стандартной математической.

2. ALGOL должен быть приспособлен для описания алгоритмов.

3. Программы на ALGOL должны были компилироваться в машинный язык.

4. ALGOL не должен быть привязан к конкретной машинной архитектуре.

1 Имеется в виду арифметический IF.

2 В те далекие времена в нашей стране было принято компьютеры называть электронными вычислительными машинами (ЭВМ). Термин «компьютер» стал де-факто стандартом с распространением персональных компьютеров. Все эти цели оказались в 1958 г. недостижимы. Чтобы обеспечить независимость от архитектуры, в этот язык не были включены возможности ввода-вывода; для таких операций следовало создавать специальные процедуры. Хотя это и обеспечивало независимость языка от архитектуры компьютера, но в то же время приводило к тому, что каждая реализация неизбежно была несовместима с любой другой. Чтобы сохранить аналогию со строгой математикой, подпрограмма рассматривалась как макроподстановка, что породило концепцию передачи параметров по имени.

Хотя ALGOL и имел некоторый успех в Европе, он так и не получил коммерческого успеха в Америке, тем не менее его влияние на другие языки было достаточно велико. В качестве примера приведем разработанную Шварцем (Jules Schwartz) из System Development Corporation (CDS) версию языка IAL — JOVIAL (Jules’ Own Version of IAL). Этот язык использовался военно-воздушными силами США для решения прикладных задач. Бэкус был редактором отчета, в котором определялся язык ALGOL. Он использовал синтаксическую систему обозначений, сопоставимую с концепцией контекстно-свободного языка, разработанной Хомским (Chomsky). Так произошло внедрение теории формальных грамматик в область языков программирования. Поскольку Бэкус и Наур внесли огромный вклад в концепцию разработки ALGOL, эта система обозначений носит их имя — нормальная форма Бэкуса-Наура (НФБ) (Backus-Naur Form — BNF).

Можно привести еще один пример влияния ALGOL. Компания по продаже компьютеров Burroughs, которая после слияния с компанией Sperry Univac образовала компанию Unisys, обнаружила работы польского математика Лукашевича (Lukasiewicz), который разработал методику, позволяющую записывать арифметические выражения без скобок, используя алгоритм вычислений с использованием стека. Эта методика оказала значительное влияние на теорию разработки компиляторов. Используя технологию, основанную на этой методике, компания Burroughs разработала компьютер В5500 со стековой архитектурой и вскоре реализовала компилятор языка ALGOL, значительно превышавший по скорости существовавшие в то время компиляторы языка FORTRAN.