Файл: Международные и отечественные стандарты языков программирования. Сходство и отличия стандартов.pdf

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

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

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

Добавлен: 12.03.2024

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

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

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

Содержание:

Введение

Язык программирования - это система обозначений, которая используется для точного описания программ или алгоритмов.

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

используется исключительно в письменной форме, то есть в виде текстов.

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

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

Целью работы является изучение международных и отечественных стандартов языков программирования.

Для решения проблемы исследования и достижения цели реализуются следующие задачи:

- исследование имеющейся научно-методической литературы по этой теме;

- проведение логико-дидактического анализа изложения этой темы в современных учебных пособиях;

- обобщение и систематизация полученных сведений.

1. Языки программирования и их классификация

Язык программирования - это знаковая система для описания алгоритмов программ, ориентированных на конкретных исполнителей (прежде всего ЭВМ).

Знаковая система состоит из трех компонентов:

1) правила, описывающие синтаксис;

2) правила, задающие семантику синтаксически правильных конструкций;

3) правила, формирующие прагматику синтаксически правильных конструкций.

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

Классификаций языков программирования существует много, но научной теории пока нет. Три основные классификации сложились исторически:

1) по функциональному признаку:

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

- специализированные языки (ориентированные на определенные классы задач)

2) по предметной ориентацией:


Языка для решения определенного класса задач, например, языки программирования для решения задач символьной обработки (Lisp, Cobol), языки для обработки флэш-клипов (АctionScript) и т. п.

3) По уровню абстракции:

- языка низкого уровня (машинно-зависимые) - Assembler и т. П.;

- языка высокого уровня (ориентированные на пользователя в определенной мере)

- Pascal, C, Fortran и т. п.;

Как отдельное направление следует выделить языка программирования баз данных, предназначены для манипуляции большими централизованными массивами данных и получения из них информации. Многие из этих языков (Access, FoxPro, 4GL и др.) имеют развитые процедурные элементы. Фактическим стандартом стала речь запросов к базам данных SQL.

Языки программирования низкого уровня ориентированы на конкретный тип процессора и учитывают его особенности.

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

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

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

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

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


Каждый язык высокого уровня должна иметь формальное описание. В этом описании должны быть определены правила записи программных конструкций (синтаксис) и то, каким образом эти конструкции выполняются (семантика). Трансляторы пишутся в соответствии с этим формального описания. Формальное описание предоставляет разработчикам трансляторов определенную свободу, и трансляторы могут быть реализованы по-разному. Говорят о том, что язык высокого уровня может иметь различные реализации. Различные реализации языка могут иметь различия в синтаксисе. Тогда может возникать ситуация, когда один транслятор воспринимает программу нормально, а другой выдает сообщение об ошибке.

Авторским вариантом языка называется описание языка в том виде, в котором он был предложен разработчиком (одним человеком или комитетом).

Важной особенностью языков высокого уровня является их относительная независимость от машины. В связи с проблемой переноса программ с одной машины на другую и отсутствием общей точки зрения на то, что именно считать стандартом этого языка программирования, Американский национальный институт стандартов (ANSI) и Международная организация по стандартизации (ISO) приняли стандарты для многих популярных языков программирования. Каждый язык высокого уровня должен иметь формальное описание. В этом описании должны быть определены правила записи программных конструкций (синтаксис) и то, каким образом эти конструкции выполняются (семантика).

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

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


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

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

Это универсальные языки высокого уровня. Наиболее известными примерами ранних языков третьего поколения является FORTRAN (FORmula ТRANslation - переводчик формул), разработанный под руководством Дж. Бекуса 1960 г., который был предназначен для научных и инженерных расчетов, и СОВОL (язык общего назначения деловой ориентации), разработанный в 1960 г. . специалистами военно-морского флота США для решения экономических задач, АLGOL, разработанный международной рабочей группой.

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

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

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

2. Стандартизация языков программирования

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


Типы данных

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

Особая система, по которой данные организуются в программе, — это система типов языка программирования; разработка и изучение систем типов известна под названием теория типов. Языки можно поделить на имеющиестатическую типизацию и динамическую типизацию, а также бестиповые языки (например, Forth).

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

Структуры данных

Системы типов в языках высокого уровня позволяют определять сложные, составные типы, так называемые структуры данных. Как правило, структурные типы данных образуются какдекартово произведениебазовых (атомарных) типов и ранее определённых составных типов.

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

Семантика языков программирования

Семантический аспект (семантика языка программирования) определяется путем конкретизации базовых функций обработки данных, набора конструкций управления и методами построения более "сложных" программ на основе "простых".

Например, определив как базовый тип данных "строка" мы должны предложить "традиционный" набор функций обработки таких данных: сравнение строк, выделение части строки, конкатенацию строк и др.

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

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

Несмотря на то, что большинство языков ориентировано на императивную модель вычислений, задаваемую фон-неймановской архитектурой ЭВМ, существуют и другие подходы. Можно упомянуть языки со стековой вычислительной моделью (Форт,Factor,PostScriptи др.), а также функциональное (Лисп, Haskell, ML,F#, РЕФАЛ, основанный на модели вычислений, введённой советским математиком А. А. Марковым-младшим и др.) и логическое программирование (Пролог).