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

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

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

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

Добавлен: 12.03.2024

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

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

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

В настоящее время также активно развиваются проблемно-ориентированные, декларативные и визуальные языки программирования.

Существует два основных вида языков для составления программ:

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

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

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

В период с 1960 года по настоящее время было создано тысячи языков программирования, но только некоторые из них получили всемирное признание, для них был утвержден стандарт языка программирования. Наиболее известными языками, которыми до сих пор пользуются во многих странах мира, является Бейсик, Кобол, Паскаль, С (и его продолжение C ++), Фортран и другие.

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

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

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

Концепция языка программирования неотрывно связана с его реализацией. Для того чтобы компиляция одной и той же программы различными компиляторами всегда давала одинаковый результат, разрабатываются стандарты языков программирования. Существует ряд организаций, целенаправленно занимающихся вопросами стандартизации. Это Американский национальный институт стандартов ANSI (American National Standards Institute), Институт инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronic Engineers), Организация международных стандартов ISO (International Organization for Standardization).


Базовым стандартом разработки ПО является ISO 12207.

Systems and software engineering - Software Life Cycle Processes, в котором все процессы ЖЦ ПО разделены на три группы.

Для поддержки практического использования стандарта ISO 12207 разработаны следующие технологические документы: Руководство для ISO / IEC 12207 (ISO / IEC TR 24748-3: 2011 Systems and software engineering - Life cycle management - Part 3: Guide to the application of ISO / IEC 12207 (Software life cycle processes)) и Руководство по использованию ISO / IEC 12207 в управлении проектами (ISO / IEC TR 16326: 2009 Systems and software engineering - Life cycle processes - Project management).

Стандарты организации IEEE

В 1963 в результате слияния Института радиотехников (Institute of Radio Engineers, IRE) и Американского института инженеров-электриков (American Institute of Electrical Engineers, AIEE) была создана международная некоммерческая ассоциация технических специалистов, мировой лидер в области разработки стандартов по радиоэлектронике и электротехнике Институт инженеров по радиоэлектронике и электротехнике IEEE (Institute of

Electrical and Electronics Engineers). Данная международная организация объединяет более 400 тыс. специалистов из 170 стран. IEEE осуществляет информационную и материальную поддержку специалистов для организации и развития научной деятельности в электротехнике, электронике, компьютерной технике и информатике.

Как правило, при создании языка выпускается частный стандарт, определяемый разработчиками языка. Если язык получает широкое распространение, то со временем появляются различные версии компиляторов, которые не точно следуют частному стандарту. В большинстве случаев идет расширение зафиксированных первоначально возможностей языка. Для приведения наиболее популярных реализаций языка в соответствие друг с другом разрабатывается согласительный стандарт. Очень важным фактором стандартизации языка программирования является своевременность появления стандарта – до широкого распространения языка и создания множества несовместимых реализаций. В процессе развития языка могут появляться новые стандарты, отражающие современные нововведения. Так, язык FORTRAN первоначально был стандартизирован в 1966 году. В результате был издан стандарт FORTRAN 66. Далее этот стандарт несколько раз пересматривался (в 1977 году был выпущен FORTRAN 77, затем появился и FORTRAN 90).

Язык Java, ставший в последнее время весьма распространенным, постепенно был значительно расширен и модифицирован: новая спецификация получила название Java 2.

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


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

Начало стандарта языка программирования С было положено выходом в 1978 году первой редакции книги Б.Кернигана и Д.Ритчи. Этот стандарт часто называют K&R. Программисты, авторы этого труда, работали над UNIX вместе с Кеном Томпсоном. При этом первый из них предложил название системы, а второй изобрел этот язык программирования.

Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году.

Однако промышленный стандарт языка программирования С был выпущен в 1989 году ANSI и имел имя X3. 159 – 1989. Вот что написано про этот стандарт:

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

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

Язык С лег в основу разработки языков программирования C++ и Java. 

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

Нововведениями С ++ по сравнению с С являются:

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

В 1998 году был ратифицирован международный стандарт языка С ++: ISO / IEC 14882: 1998 "Standard for the C ++ Programming Language". В 2003 году был опубликован стандарт языка ISO / IEC 14882: 2003, где были исправлены ошибки. Велась работа над новыми стандартами. В 2011 году стандарт был принят и получил название С ++ 11 ISO / IEC 14882: 2011.

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


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

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

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

Группа стандартов ГОСТ «Единая система программной документации» (ЕСПД) потерпела мало изменений с момента ее создания, пережила несколько поколений ЭВМ и революционных изменений технологий разработки программ. При этом она до настоящего времени никогда не затрудняла новаций.

КОБОЛ был первым языком, в котором средства описания данных соответствуют процедурным возможностям, и первым языком, в котором введен тип данных "запись", являющийся основной структурой данных.

В СССР первые компиляторы с подмножества языка КОБОЛ реализованы в 1968 г. на ЭВМ "Днепр-21" и "Минск-32", а в 1977 г. был принят отечественный стандарт на язык программирования КОБОЛ (ГОСТ 22558-77).

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

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


3. Сходство и отличие стандартов

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

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

По мнению многих программистов, наиболее хороший стандарт на сегодняшний день существует для языка Си. Опыт нескольких лет, прошедших после принятия стандарта, показывает, что при грамотном использовании стандарта Си ANSI/ISO проблемы переноса программ, связанные с особенностями аппаратуры или компиляторов, практически не возникают (если учитывать имеющиеся в самом стандарте рекомендации по созданию переносимых программ). Этих нескольких лет оказалось достаточно, чтобы обеспечить полное соответствие стандарту практически всех индустриальных компиляторов языка Си. Даже если в реализации допускаются расширения стандарта (как, например, в компиляторе Ричарда Столлмана из проекта GNU GCC), то имеются опции компилятора, позволяющие контролировать выход за границы стандарта.

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