Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Международные и отечественные стандарты языков программирования. Сходство и отличия стандартов (Классы языков программирования)

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

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

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

При осуществлении цели исследования надо выполнить такие основные задачи:

– выполнить анализ литературных источников по теории языков программирования;

– дать характеристику классификации языков программирования;

– рассмотреть типы языков программирования;

– описать разные стандарты языков программирования.

Самыми известными исследователями и программистами по языкам программирования являются: Бочков К. О., Липпман В. Б., Оллисон У.

1.ОСНОВЫ ТЕОРИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

1.1.Основные определения

Понятие компьютерного языка (языка программирования) относится к специальным формальным языкам, что ассоциируются с использованием компьютерной техники. [5]

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

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

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

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

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

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

Знаковой системой назовем совокупность условных правил, а также разных знаков для взаимосвязи. Виды знаковых систем рассмотрено на рисунке 1:

Рисунок 1 – Типы знаковых систем

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

Создатели ЯП толкуют понятие своего языка программирования совсем по-разному.

Стоит также заметить, что к самым широким понятиям, признаваемыми всеми программистами, можно отнести:

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

2. Задача ЯП: каждый язык программирования имеет свойства отличаться от самых разных естественных языков именно своим предназначением для передачи различных программных команд и используемых данных персональному компьютеру (ПК) от пользователя, хотя обычные языки также используют это в общении для людей. [4]

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

3. Реализация ЯП: язык программирования часто пользуется специализированными конструкциями для выполнения своего определения, а также и манипулирования структурами данных, иногда управления непосредственным процессом. [8]

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

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

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

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

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

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

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

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

Классификация практически всех известных ЯП тесно связана с методами, что используемые во время создания любого программного продукта (рисунок 2). [12]

Классификация языков программирования. Автор24 — интернет-биржа студенческих работ

Рисунок 2 – Классы языков программирования.

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

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

Самым первым языком программирования для процедурного типа был язык под названием Fortran, далее создали следующие:

– Ada;

– Cobol;

– Pascal;

– C;

– Algol.

К ЯП низкого уровня часто относят:

– программирование в машинных кодах;

– ассемблер (код программы на рисунке 3);

– макроассемблер.

Рисунок 3 – Пример кода на Ассемблере

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

Часто достаточным действием для выполнения программы часто считали только компиляцию программного кода для операционной системы или архитектуры.

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

Время разработки в нынешнее время значительно уменьшается, что является ценным и важным при работе с проектами больших размеров.

Существенный недостаток рассматриваемых языков высокого уровня – это большой размер для программных продуктов в сравнении с такими же программами на ЯП низкого уровня. [2]

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

Отметим, что все ЯП высокого уровня могут разделяются на:[4]

– универсальные;

– проблемно-ориентированные.

Главными универсальными языками считаются:

– C#;

– Delphi;

– Basic;

– C++.

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

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

Далее создание программного кода на разнообразных объектно-ориентированных ЯП может представляться в виде создания некоторой последовательности экземпляров объектов, а также создании методов для них [4].

К таким языкам относятся:

– SmallTalk;

– Java;

– C++;

– Python;

  • Object Pascal;

– С#.

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

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

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

Самой главной структурной частью информации для таких языков является односвязный список. [3]

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

2. ОБЗОР ПОПУЛЯРНЫХ ЯП

2.1. Описание ЯП C++

C++ разработан сотрудником исследовательского центра Bell Laboratories (США) Бьярном Страуструпом еще в 1978 году.

Первоначальное название ЯП - «С с классами» изменено на C++ в 1982 году.

При этом, начиная с 1979 года, C++ претерпел, 2 существенные модернизации, а именно в 1984 и 1989 годах. [3]

Последняя, 3-я модернизация связана с выполнением стандартизации C++. Стоит отметить, что несколько лет назад была начата работа по созданию одного международного стандарта C++. Для такой цели был сформирован комитет по стандартизации с названием ANSI и ISO для языка C++.

Первый проект указанного стандарта представлен еще 25 января 1993 года. Комитет по C++ фактически сохранял все основные черты ЯП, заложенные туда еще Б. Страуструпом, а также добавил несколько новых возможностей.

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

Также многие утверждают, что ЯП C++ – это единственный серьезный язык, что просто обязан знать практически каждый уважающий себя программист.

С++ – это компилируемый типизированный язык программирования для общего назначения. Он поддерживает разные парадигмы:

– процедурную;

– функциональную;

– обобщённую.

Но наибольшее внимание уделено использованию объектно-ориентированного программирования. [6]

ЯП C++ – расширенная версия С. C++ содержит в себе все черты, что имеется в ЯП С, и кроме этого он также поддерживает принципы объектно-ориентированного программирования.

В C++ также имеется множество возможностей, которые независимо от ООП делают его несколько «лучше, чем С».

C++ был задуман, чтобы осуществить поддержку объектно-ориентированного программирования. Разные свойства C++ касаются OOП. Но важно понимать, что ЯП C++ может применяться для написания не лишь объектно-ориентированных программ.

То, как применяется C++, полностью зависит от разработчика.

Язык С++ является во многом надмножеством С. Принципиальные новые возможности С++ в себя включают:[9]

– объявления выражений;

– преобразования типов;

– операторы для динамической памяти;

– ссылки;

– применение расширенного понятия константности;

– подставляемые функции и аргументы по умолчанию;

– функции-члены;

– разного рода виртуальные функции;

– конструкторы и абстрактные классы;

– переопределения операторов и шаблоны и многое другое.

Язык С++ во многих случаях относится строже к проверке типов. В С++ появились новые комментарии в виде «//».

Некоторые особенности С++ были позднее перенесены в С, к примеру, ключевые слова inline и const, объявления в циклах и другие.[12]

В более поздних реализациях ЯП С также представлены возможности, которых теперь нет в С++, к примеру макросы и улучшенная работа с массивами.

Достоинства языка С++:

Масштабируемость;

– Возможность работы с памятью на низком уровне;

– C++ имеет препроцессор, унаследованный ч C.

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

2.2. Описание ЯП Java

Язык программирования Java создавался в рамках проекта фирмы Sun Microsystems при разработке компьютерных аппаратно-программных комплексов нового поколения.

Первая версия Java была официально опубликована еще в 1995 году. С того момента язык Java стал "де-факто" стандартом, вытеснив за 10 лет языки C++ и C из многих направлений программирования.

Также в 1995 году C++ был абсолютным лидером, но к 2006 г. число программирующих Java стало превышать число программистов C и C++.

Число устройств, которые запрограммированы с помощью Java, уже превысило полтора миллиарда. [2]

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

Их также принято считать ЯП низкого уровня, так как они ориентированы непосредственно на особенности конкретных микропроцессоров.

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

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

Их можно скопировать в надобное место памяти ПК и передать управление непосредственно первой команде программы.

Программы, которые написаны на каком-то языке программирования, сначала надо перевести с одной формы в другую, а процесс такого перевода называют трансляцией.

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

Имеются 2 основных типа трансляции:[8]

– компиляция;

– интерпретация.

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

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

Программы, написанные на Java, представляют собой набор классов и сохраняются в специальных текстовых файлах, которые имеют расширение java.

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

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

Для того чтобы выполнять байт-код на каком-то компьютере, его нужно конвертировать в инструкции для процессора. Именно это выполняет Java-машина. [4]

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

В ныенешнее время используется сложная схема, которая называется JIT-компиляцией – компиляция "на лету".

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

2.3. Описание ЯП C#

Несмотря на то, что C# – самодостаточный ЯП, у него есть особая взаимосвязь с средой выполнения под названием .NET Framework.

Практическое наличие такой взаимосвязи можно обяснить двумя причинами: [10]

– C# первоначально предназначался как создатель кода, что должен выполняться в.NET Framework.

– используемые в C# модули и библиотеки определены в .NET Framework.

Стоит отметить, что на практике это значит, что C# с .NET Framework связаны тесно друг с другом, но теоретически C# можно отделять от среды программирования.

В связи с данным фактом очень важно иметь самое общее представление о работе в среде .NET и ее значении непосредственно для С#.

NET Framework – служит средой для поддержки выполнения и разработки сильно распределенных приложений.

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

Среда .NET Framework определяет 2 очень важны компонента. Первым из них есть общеязыковая среда выполнения CLR. [7]

Это система, которая выполняет программы. Среди прочих преимуществ CLR, как составной части среды .NET Framework использует многоязыковое программирование, обеспечивает безопасное выполнение и переносимость программ.

Вторым компонентом .NET Framework является так называемая библиотека классов.

Она предоставляет программе доступ непосредственно к среде выполнения. Если требуется выполнить операции ввода-вывода, к примеру, вывести что-то на экран, то используется для этой цели библиотека классов .NET. [11]

Если программа ограничивается методами, определяемыми в библиотеке .NET, то программа может выполняться практически везде, где поддерживается .NET. А так как в ЯП C# библиотека классов используется автоматически, то все программы на С# оказываются заведомо переносимыми во все среды .NET Framework.

Во втором разделе работы подробно описаны некоторые понятия теории ЯП, рассмотрены главные принципы применения современных ЯП, которые поддерживают разработчики.

3.ОБЗОР СТАНДАРТОВ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

3.1.Международные стандарты языков программирования

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

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

Как правило, при создании языка выпускается частный стандарт, определяемый разработчиками языка. Если язык получает широкое распространение, то со временем появляются различные версии компиляторов, которые не точно следуют частному стандарту.

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

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

Так, язык FORTRAN первоначально был стандартизирован в 1966 году. В результате был издан стандарт FORTRAN 66. Далее этот стандарт несколько раз пересматривался (в 1977 году был выпущен FORTRAN 77, затем появился и FORTRAN 90).

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

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

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

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

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

По мере того, как язык С постепенно развивался сообщество пользователей этого языка осознало, что нуждается в современном и строгом стандарте. В ответ на эти потребности Американский институт национальных стандартов (American National Standards Institute (ANSI)) в 1983 г. организовал комитет (X3J11) для разработки нового стандарта, который был принят в 1989 г. Этот стандарт (ANSI C) содержит определение как языка, так и стандартной библиотеки С. Затем международная организация по стандартизации (ISO) в 1990 г. приняла свой стандарт (ISO C), который по сути не отличается от стандарта ANSI C.

В 1994 г. возобновилась деятельность по разработке нового стандарта, в результате чего появился стандарт C99, который соответствует языку С++. Объединенный комитет ANSI/ISO развил исходные принципы предыдущего стандарта, являющийся основным на сегодняшний день.

Язык SQL предназначен для доступа к информации и управления реляционной базой данных. Управление различными реляционными базами данных осуществляют программы, называемые СУБД - системы управления базами данных (DBMS - Database Management System). Сама реляционная база данных представляет собой хранилище определенным образом организованной информации и СУБД. Однако на практике термин СУБД часто заменяют термином БД (база данных). Для того чтобы c различными базами данных, такими как Oracle, Microsoft SQL Server, Informix, DB2, Access, MySQL - можно было общаться на одном языке, был разработан язык SQL.

Начиная с 1986 года комитеты ISO (International Organization for Standardization) и ANSI (American National Standards Institute) приступили к созданию ряда стандартов языка SQL, которые впоследствии были приняты и получили следующие названия: SQL86, SQL89, SQL92 и SQL99.

Стандарт SQL86 зафиксировал минимальный стандартный синтаксис языка SQL.

Стандарт SQL89 был принят в 1989 году. Он вводил набор операторов языка SQL, которые должны были реализовывать все СУБД, заявляющие поддержку стандарта SQL89. На практике каждая реальная коммерческая СУБД предоставляет значительно более широкий набор возможностей, чем предусмотрено стандартом.

Так, несмотря на то, что большинство СУБД на момент принятия стандарта уже поддерживали встроенный и динамический SQL, в стандарте SQL89 правила встраивания языка SQL в процедурный язык программирования (такой как язык С) и правила использования динамического SQL прописаны не были.

До последнего времени большинство СУБД поддерживали стандарт SQL92.

В стандарте SQL92 было определено три уровня соответствия:

  • основной (Entry);
  • средний (Intermediate);
  • полный (Full).

При этом, для того чтобы объявить СУБД поддерживающей стандарт SQL92, большинство производителей реализовывали только основной уровень соответствия.

Новый стандарт SQL99, при разработке именовавшийся как SQL3, стандартизировал объектные расширения языка SQL и некоторые процедурные расширения языка SQL. К моменту принятия этого стандарта большинство коммерческих СУБД, таких как Oracle, уже де-факто ввели использование объектных типов и наследования.

В стандарте SQL99 определено обязательное функциональное ядро (Core) и набор уровней расширенного соответствия. Функциональное ядро SQL99 включает в себя основной уровень соответствия SQL92. Уровни расширенного соответствия не являются обязательными для реализации в СУБД, претендующей на поддержку стандарта SQL99. СУБД может не поддерживать ни одного уровня расширенного соответствия или поддерживать любые из них.

Каждый уровень описывает набор возможностей языка SQL, которые должны поддерживать реализации СУБД, претендующие на данный уровень соответствия.

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

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

Среди национальных организаций, разрабатывающих стандарты, мы рассмотрим только две организации, которые интересуют нас в наибольшей степени. Это Государственный комитет РФ по стандартизации и Американский национальный институт стандартов и технологии.

Согласно Руководству 2 ИСО/МЭК деятельность по стандартизации осуществляют соответствующие органы и организации. Орган рассматривается как юридическая или административная единица, имеющая конкретные задачи и структуру. Это могут быть органы власти, фирмы, учреждения.

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

Национальным органом по стандартизации в России является Государственный комитет Российской Федерации по стандартизации и метрологии (Госстандарт России). Это федеральный орган исполнительной власти, осуществляющий межотраслевую координацию, а также функциональное регулирование в области стандартизации, метрологии и сертификации.

Государственный комитет Российской Федерации по стандартизации и метрологии — правопреемник упраздненного Министерства промышленности и торговли Российской Федерации в отношении функций по реализации государственной политики в сфере стандартизации, метрологии и сертификации.

Государственный комитет Российской Федерации по стандартизации и метрологии — специально уполномоченный федеральный орган исполнительной власти в области сертификации. Председатель Государственного комитета Российской Федерации по стандартизации и метрологии является главным государственным инспектором Российской Федерации по надзору за государственными стандартами и обеспечением единства измерений.

Госстандарт России выполняет следующие функции:

– координирует деятельность государственных органов управления, касающуюся вопросов стандартизации, сертификации, метрологии;

– взаимодействует с органами власти республик в составе РФ и других субъектов Федерации в области стандартизации, сертификации, метрологии;

– направляет деятельность технических комитетов и субъектов хозяйственной деятельности по разработке, применению стандартов, другим проблемам сообразно своей компетенции;

– подготавливает проекты законов и других правовых актов в пределах своей компетенции;

– устанавливает порядок и правила проведения работ по стандартизации, метрологии, сертификации;

– принимает большую часть государственных стандартов, общероссийских классификаторов технико-экономической информации;

– осуществляет государственную регистрацию нормативных документов, а также стандартных образцов веществ и материалов;

– руководит деятельностью по аккредитации испытательных лабораторий и органов по сертификации.

В организационной структуре Госстандарта предусмотрены подразделения для реализации значительного объема работ: 19 научно-исследовательских институтов, 13 опытных заводов, издательство, 2 типографии, 3 учебных заведения, более 100 территориальных центров стандартизации, метрологии и сертификации (ЦСМ). На базе территориальных органов Госстандарта создаются органы по сертификации и испытательные лаборатории. По данным на 1996 г., было аккредитовано более 500 органов по сертификации различных видов услуг и около 2000 испытательных лабораторий.

ГОСТ 28397-89

Языки программирования. Термины и определения.

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

ГОСТ 27831-88
Язык программирования АДА.

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

ГОСТ 21551-76
Язык программирования АЛГАМС.

Устанавливает описание языка программирования АЛГАМС, предназначенного для автоматизации программирования при решении научных и инженерно-технических задач, а также для обмена алгоритмами.

ГОСТ 27975-88
Язык программирования АЛГОЛ 68 расширенный.

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

ГОСТ 23056-78
Язык программирования Фортран.

Распространяется на язык программирования ФОРТРАН.

ГОСТ 23057-78
Язык программирования Базисный Фортран.

Распространяется на язык программирования Базисный Фортран.

ГОСТ 27974-88
Язык программирования АЛГОЛ 68.

Распространяется на язык программирования Алгол 68 и его варианты и устанавливает требования:
к программе на языке программирования Алгол 68, представленной на машинном носителе или в комплекте программной документации;
к реализациям языка программирования Алгол 68 и его вариантов, используемым при создании или эксплуатации программных средств, в части выполнения программ на языке Алгол 68.

ГОСТ 27787-88
Язык программирования БЕЙСИК.

Настоящий стандарт устанавливает: 1) синтаксис программ, написанных на языке Бейсик; 2) форматы и точность данных, а также диапазон представления чисел для данных, поступающих на вход процессора обработки данных, управляемого программой, написанной на языке Бейсик; 3) форматы и точность данных, а также диапазон представления чисел, получаемых в результате выполнения процессором обработки данных программы, написанной на языке Бейсик; 4) семантические правила для интерпретации смысла программ, написанных на языке Бейсик; 5) ошибки и исключительные ситуации, которые должны быть обнаружены, а также способ, при помощи которого эти ошибки и исключительные ситуации должны быть обработаны.
Настоящий стандарт не устанавливает: 1) механизм, при помощи которого программы, написанные на языке Бейсик, преобразуются для использования процессором обработки данных; 2) средства, при помощи которых выполняются программы, написанные на языке Бейсик; 3) состав и форму документации на реализации языке Бейсик и программы, написанные на языке Бейсик.

3.3. Пять языков программирования стандарта МЭК 6-1131/3.

TRACE MODE® 6 предоставляет широкий набор средств программирования задач

АСУТП и бизнес-приложений (АСУП), ориентированный на специалистов разной квалификации и профессиональной подготовки. В систему TRACE MODE® 6 включены 5 языков программирования – Techno SFC, Techno LD, Techno FBD, Techno ST, и Techno IL. Данные языки являются расширением языков

-SFC (Sequential Function Chart),

-LD (Ladder Diagram),

-FBD (Function Block Diagram),

-ST (Structured Text) и

-IL (Instruction List)

Международного стандарта МЭК 6-1131/3. Данный стандарт разрабатывается с 1993 года Международной Электротехнической Комиссией (IEC) и давно признан как в Европе и в США, так и во всем мире ведущими производителями средств автоматизации.

Языки программирования TRACE MODE® 6 стандарта МЭК 6-1131/3 включают в себя 3 визуальных языка (FBD, SFC, LD), ориентированных на инженеров и бизнес-аналитиков и 2 текстовых (ST, IL), ориентированных на программистов. С помощью языков IEC 61131-3 TRACE MODE® 6 одинаково комфортно программируются и контроллеры, и алгоритмы человеко-машинного интерфейса (HMI) и задачи EAM и MES.

Языки МЭК 6-1131/3 TRACE MODE® 6 сочетают в себе достаточную функциональность, простоту и предохраняют пользователя TRACE MODE® 6 от большинства ошибок, которые нередко возникают при использовании обычных языков программирования. Реализация МЭК 6-1131/3 в интегрированной SCADA/SOFLOGIC/MES/EAM/HRM системе TRACE MODE® 6 не только полностью удовлетворяет требованиям стандарта, но и предоставляет пользователю дополнительный сервис в виде расширенного набора библиотек функциональных блоков, реализующих типовые алгоритмы управления.

Для всех 5 языков существует единый механизм связи с базой данных реального времени TRACE MODE® 6. Каждая программа обладает набором аргументов, исходные данные передаются в программу через входные аргументы, а результаты вычислений возвращаются в выходных аргументах. Аргументы связываются с атрибутами каналов TRACE MODE 6, т.е. с реальными входами и выходами контроллеров и УСО, ячейками корпоративных баз данных, либо с внутренними переменными. Таким образом, одна и та же программа может вызываться несколько раз за цикл для обработки разных потоков данных.

Программирование и отладка программ на языках МЭК 6-1131/3 в TRACE MODE 6 производится в интегрированной среде разработки, включающей в себя несколько различных редакторов. Программы на языках Techno FBD, Techno LD и Techno SFC создаются и отлаживаются в специальных визуальных редакторах, а Techno ST и Techno IL представляют собой более традиционные языки, программирование на которых осуществляется в текстовом редакторе. Несмотря на различия, программы на разных языках стандарта МЭК 6-1131/3 в TRACE MODE® 6 могут взаимодействовать между собой. Например, программа на Techno FBD может вызывать функциональный блок, написанный на языке Techno ST, а внутри этого блока может вызываться подпрограмма на Techno LD и т.д. Такая гибкость в выборе средств описания алгоритмов позволяет эффективно работать над одной задачей и программисту, и технологу, и инженеру-наладчику и бизнес-консультанту, когда каждый из них выполняет свою часть работы удобным ему способом.

3.4. Международные стандарты языка Фортран.

С момента создания первой системы Fortran было принято три стандарта ANSI/ISO языка — FORTRAN 66, FORTRAN 77 и Fortran 90.

Большинство российских программистов со стажем знакомо именно со стандартом FORTRAN 77. Однако после его принятия вышло довольно много редакций Fortran, каждая из которых обладала собственным набором расширений языка. В 1992 г. был принят новый стандарт — Fortran 90, в который вошли многие расширения спецификации FORTRAN 77, реализованные в наиболее распространенных сегодня системах разработки. За счет этого обеспечивается более высокий уровень совместимости между различными платформами.

По устоявшейся традиции новый стандарт гарантирует полную совместимость с предыдущими. Вместе с тем он включает практически все атрибуты современного языка программирования; многие из его новых конструкций имеют прямые аналоги в других языках (C/C++, Pascal, Basic). Одновременно нужно отметить, что Fortran именно "догоняет" своих более современных собратьев, реализуя уже довольно известные языковые возможности. В качестве оригинальных возможностей Fortran можно отметить только матричные операции.

Следует подчеркнуть, что современные компиляторы Fortran 90 не гарантируют получения более быстрого исполняемого кода по сравнению с компиляторами стандарта FORTRAN 77 (противоречие между сложностью языковых конструкции и оптимизацией результирующего кода уже отмечалось ранее). Наверное, именно поэтому в некоторых системах, например Microsoft PowerStation, фактически реализованы два варианта компилятора для обоих стандартов.

С внешней стороны наиболее заметным новшеством является "свободная форма" исходного текста, дополненная другими полезными элементами оформления программы. В логических операторах можно использовать привычные математические знаки вместо неудобных символьных обозначений (например, ">" вместо ".gt."). Появление целого ряда операторов, управляющих логикой работы программы (DO, SELECT CASE, CYCLE, EXIT), упрощает процесс разработки и делает исходный текст более понятным. Кроме того, в новый стандарт языка вошла возможность устанавливать режим обязательного описания переменных (оператор implicit).

Значительную часть новшеств Fortran 90 составляют расширенные возможности операций с матрицами (массивами), которые теперь могут использоваться в выражениях как простые переменные. Так, чтобы умножить все элементы матрицы a(3,2) на 2, достаточно написать: a = a*2. Кроме обычных арифметических функций, реализованы также и специальные операции над матрицами, в частности умножения и транспонирования, а также выборки подмножества матрицы. Наличие подобных операций не только упрощает код программы, но и повышает скорость ее выполнения. Здесь наряду с привычной оптимизацией машинного кода возможен дополнительный выигрыш за счет распараллеливания матричных операций еще на уровне компилятора.

Новый вариант описания типа (например, integer(4) вместо INTEGER*4) позволяет использовать переменную для указания числа резервируемых байтов. Наряду с поддержкой специальных функций идентификации чисел (Numeric Inquiry Functions), это упрощает проблему совместимости компьютеров различных архитектур, в частности машин Cray и PC, использующих разные принципы хранения данных.

В Fortran 90 наконец-то стали поддерживаться структуры данных, получивших название Derived Type (производный тип), который является аналогом структур C или записей Pascal.

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

Предыдущие стандарты Fortran допускали использование только статических данных, так что, например, при решении двумерных задач моделирования конечно-разностными методами приходилось описывать размеры массивов (в программе их могло быть до нескольких десятков) непосредственно в коде программы: DD(50,50). В результате для определенных размеров модели (скажем, 60 на 30 узлов) задача оказывалась неразрешимой, при том что реальные требования к объему памяти были ниже.

В новом стандарте реализован также механизм специальных указателей (pointers), которые можно динамически связывать с простыми переменными и элементами массивов (только статических).

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

В новом стандарте появилась конструкция "модуль" (Module), почти такая же, как в MS Basic. Основной ее смысл заключается в объединении в рамках одного модуля процедур, имеющих общие внутренние переменные. Помимо этого, реализована возможность использования внутренних процедур (Internal Procedure) подобно тому, как это делается в Pascal.

Для удобства работы с процедурами модуля из других частей программы можно использовать оператор USE, который делает все описания данных и процедур модуля доступными данной программе. Но при написании модуля программист может определить, какие из процедур будут доступны извне (Public), а какие — нет (Private).

Это, конечно же, далеко не все новшества стандарта Fortran 90. Но главный вывод очевиден: современный Fortran — совсем не то, что помнят многие из нас.

Возвращаясь к вопросу об особом интересе, который может представлять Fortran для российских разработчиков, следует вспомнить, что еще недавно это был один из самых популярных языков программирования в нашей стране. В России имеется огромное число наработок с его применением, причем именно в области математических расчетов, где отечественные ученые всегда занимали передовые позиции. Вот почему шансы российских программистов в этом секторе разработок могут быть достаточно высоки. Так что некоторым специалистам, вероятно, стоит призадуматься над лозунгом: "Назад к Fortran!".

Стандартизацией языка Фортран занимаются Американский технический комитет NCITS/J3 и эксперты рабочей группы WG5 (указанного подкомитета). Членами WG5 являются специалисты многих стран, в т.ч. и нашей страны. В их числе представители компьютерных фирм, крупных университетов. Многие из тех, кто ответствен за разработку коммерческих Фортран-компиляторов, являются членами J3 и/или WG5.

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

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

Кроме того, разрабатываются Технические отчеты (TR), которые позволяют стандартизировать некоторые новые черты, не дожидаясь завершения разработки будущего стандарта. Так, TR 15880и TR 15881 рассматривались как расширения Фортрана 95, затем описанные в них средства вошли в Фортран 2003. В настоящее время рассматриваются два Технических отчета:

  • Technical Report (Type 2) on Enhanced Module Facilities, ISO/IEC 19767: 2005(E) - расширение Фортрана 2003;
  • Technical Report (Type 2) on Further Interoperability of Fortran with C, work in progress.

Фортран — жёстко стандартизированный язык, именно поэтому он легко
переносится на различные платформы. Существует несколько международных
стандартов языка:
-FORTRAN IV (позже положенный в основу FORTRAN 66 (1966))
-FORTRAN 77 (1978) -множество улучшений: строковый тип данных и функции для его обработки, блочные операторы IF, ELSE IF, ELSE, END IF, оператор включения
фрагмента программы INCLUDE и т. д.
-Fortran 90 (1991) -значительно переработан стандарт языка. Введён свободный формат
написания кода. Появились дополнительные описания IMPLICIT NONE, TYPE,
ALLOCATABLE, POINTER, TARGET, NAMELIST; управляющие конструкции DO …
END DO, DO WHILE, CYCLE, SELECT CASE, WHERE; работа с динамической
памятью (ALLOCATE, DEALLOCATE, NULLIFY); программные компоненты MODULE,
PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT. Появились новые
встроенные функции, в первую очередь, для работы с массивами

-в языке появились элементы ООП
-отдельно объявлен список устаревших черт языка, предназначенных для удаления в будущем

-Fortran 95 (1997) коррекция предыдущего стандарта
-Fortran 2003 (2004)-дальнейшее развитие поддержки ООП в языке. Взаимодействие с операционной системой

Фортран в СССР появился позже, чем на Западе, поскольку поначалу у нас более перспективным языком считался Алгол.
Во внедрении Фортрана большую роль сыграло общение советских физиков со
своими коллегами из CERN, где в 1960-х годах почти все расчёты велись с
использованием программ на Фортране.

Первый советский компилятор с Фортрана был создан в 1967 г. для
машины «Минск-2», однако он не получил большой известности. Широкое
внедрение Фортрана началось после создания в 1968 г. компилятора
ФОРТРАН-ДУБНА для машины БЭСМ-6. Машины ЕС ЭВМ, появившиеся в 1972 г.,
уже изначально имели транслятор Фортрана («позаимствованный» с IBM/360
вместе с другим программным обеспечением).

ЗАКЛЮЧЕНИЕ

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

Огромное внимание всегда надо уделять стандартам проектирования и создания ПО, а также методологии его тестирования – как отдельных частей, так и всей системы в целом.

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

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

В работе выполнены задачи:

– выполнен анализ литературных источников по теории языков программирования;

– дана характеристика классификации языков программирования;

– рассмотрены типы языков программирования;

– описаны разные стандарты языков программирования.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Аммерааль Л. Языки программирования: Пер. с англ. — М.: ДМК, 2016. — 240 с.
  2. Бочков С. О. Язык программирования Си для персонального компьютера. — М.: Радио и связь, 2016. — 384 с.
  3. Бобровский С. Программирование в среде Borland C++ Builder М.: ИНФРА-М, 2015.–251 c.
  4. Бруно Бабэ. Просто и ясно о программировании: Пер. с англ. - Москва: БИНОМ, 2014. – 400с.
  5. Джосьютис Н. М. Стандартная библиотека. Для профессионалов: Пер. с англ. — СПб.: Питер, 2014. — 730 с.
  6. Керниган Б. В. Технологии программирования: Пер. с англ. — 3-е изд. — СПб.: Невский Диалект, 2014. — 352 с.
  7. Липпман С. Б. Проектирование программных продуктов: Пер. с англ. — М.: Вильямс, 2012. — 256 с.
  8. Липпман С. Б. Качество ПО. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2014. — 1104 с.
  9. Лишнер Р. STL. Карманный справочник. Языки программирования: Пер. с англ. — СПб.: Питер, 2015. — 187 с.
  10. Мейерс С. Эффективное использование языков программирования: Пер. с англ. — СПб.: Питер, 2015. — 224 с.
  11. Оллисон Ч. Философия программирования. Практическое программирование. С.Петербург 2014. – 608 с.:ил.
  12. Послед Б.С. Разработка приложений. М.: 2015г. -360 г.