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

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

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

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

Добавлен: 04.04.2023

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

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

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

Введение

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

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

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


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

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

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

  • рассмотреть языки программирования, как объекты стандартизации;
  • исследовать вопросы относительно отечественных исследований в направлении развития языков программирования;
  • изучить зарубежные и отечественные стандарты языков программирования на примере Фортран.

1. Языки программирования, как объекты стандартизации

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

1. Языки программирования первого поколения (1954–1958):

  • FORTRAN I - Математические формулы;
  • ALGOL-58 - Математические формулы;
  • Flowmatic - Математические формулы;
  • IPL V - Математические формулы.

2. Языки программирования второго поколения (1959–1961):

  • FORTRAN II - Подпрограммы, раздельная компиляция;
  • ALGOL-60 - Блочная структура, типы данных;
  • COBOL - Описание данных, работа с файлами;
  • Lisp - Обработка списков, указатели, сборка мусора.

3. Языки программирования первого поколения (1962–1970):


  • PL/I - FORTRAN+ALGOL+COBOL;
  • ALGOL-68 - Ближайший наследник ALGOL-60;
  • Pascal - Простой наследник ALGOL-60;
  • Simula - Классы, абстракция данных.

4. Разрыв преемственности (1970–1980). В этот период было изобретено много языков, но лишь немногие из них выдержали испытание временем. Среди них заслуживают упоминания следующие языки:

  • C - Характеризуется малым размером исполняемых модулей;
  • FORTRAN 77 - Прошел стандартизацию ANSI.

Следующим этапом развития языков программирования стало развитие объектно-ориентированного программирования (1980–1990, проверку временем прошли лишь несколько языков):

  • Smalltalk 90 Чисто объектно-ориентированный язык;
  • C++ происходит от языков C и Simula;
  • Ada83 Строгий контроль типов; сильное влияние языка;
  • Pascal Eiffel происходит от языков Ada и Simula.

На развитие языков программирования огромное влияние было осуществлено появление интегрированных сред, которые определяли уровень распространения языков программирования, для которых были предназначены (1990 и до настоящего времени):

  • Visual Basic - Облегченное проектирование графического пользовательского интерфейса (graphical user interface — GUI) для приложений в операционной среде Windows;
  • Java - Наследник языка Oak разрабатывался для мобильных устройств;
  • Python - Объектно-ориентированный язык сценариев;
  • J2EE Интегрированная среда на базе языка Java для промышленного применения;
  • .NET Интегрированная объектно-ориентированная среда, разработанная компанией Microsoft;
  • Visual C# - Конкурент языка Java для среды Microsoft .NET;
  • Visual Basic .NET Вариант языка Visual Basic для среды Microsoft .NET.

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

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


В конце 1960-х годов, особенно после изобретения транзисторов и технологии интегральных схем, стоимость аппаратного обеспечения резко упала, а производительность компьютеров продолжала расти почти экспоненциально. Это позволяло решать еще более сложные задачи, но вынуждало программистов манипулировать более разнообразными видами данных. В результате возникли языки третьего поколения, такие как ALGOL-68 и Pascal, поддерживающие абстракцию данных. Теперь разработчики получили возможность описывать свои собственные виды данных (т. е. создавать пользовательские типы) и реализовывать проектные решения на языке программирования. Это поколение языков программирования еще больше удалилось от машинной архитектуры и приблизилось к предметной области.

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

Наибольший интерес представляет класс языков, называемых объектными (object-based) и объектно-ориентированными (object-oriented). Эти языки лучше всего поддерживают объектно-ориентированную декомпозицию программного обеспечения. Большинство объектно-новых языков этой категории (и объектно-ориентированных вариантов старых языков программирования) появились в 1980-х и начале 1990-х годов. После 1990-го года появилось немного объектно-ориентированных языков программирования, поддерживаемых поставщиками коммерческого программного обеспечения (например, языки Java и C++). Появление интегрированных сред (например, J2EE и .NET), предоставляющих в распоряжение программистов огромное количество компонентов и сервисов, которые упростили решение типичных и рутинных задач, резко увеличило производительность их труда и продемонстрировало преимущества повторного использования кода.

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


2. Отечественные и зарубежные стандарты языков программирования

2.1 Отечественные исследования в направлении развития языков программирования

Традиционно в России существовало значительное число групп, активно занимавшихся исследованиями и разработками в области трансляции. Эти группы функционировали в академических институтах (Институт прикладной математики АН СССР, Вычислительный центр АН СССР, Вычислительный центр СО АН СССР, Институт точной механики и вычислительной техники АН СССР и др.), в вузах (Московский, Ленинградский, Ростовский университеты и др.), а также в ряде промышленных исследовательских институтов. Необходимость создания широкого спектра трансляторов для разнообразной отечественной техники (а подавляющее большинство используемых средств вычислительной техники было отечественным) стимулировало как фундаментальные исследования, так и экспериментальные разработки в этой области.

Наиболее интересные исследования и разработки ведутся по следующим направлениям:

  1. Теоретическое и методические исследования процессов трансляции и преобразования программ и методов построения трансляторов и других языковых процессоров. Наиболее "продвинутые" работы здесь ведутся в области применения трансформационного подхода, методов верификации трансляторов, систем построения трансляторов, методов реализации функционально-логических языков.
  2. Разработка новых языков и систем программирования для них. Эти работы связаны с созданием расширений существующих языков для параллельных вычислений, или с разработкой декларативных языков — проблемно-ориентированных, языков спецификаций, функционально-логических. Существенно, что создание языков ведется "под себя", т. е. группа, создающая язык, сама реализует или предполагает реализовать его.
  3. Интеграция трансляции в развитые окружения программирования. Работы этого направления прежде всего связаны с созданием технологических инструментов разработки программ для встроенных или параллельных ЭВМ.