Файл: Международные и отечественные стандарты языков программирования. Сходство и отличия стандартов.(Семантика языков программирования).pdf
Добавлен: 31.03.2023
Просмотров: 215
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1 Стандартизация языков программирования
1.1 Семантика языков программирования
1.2 Парадигма программирования
Глава 2 Анализ международных и отечественных стандартов языков программирования
2.1 Отечественные стандарты языков программирования
2.2 Международные стандарты языков программирования
2.3 Сходства и отличия стандартов
Современная индустрия программного обеспечения (ПО) характеризуется очень высокой степенью конкуренции. Для успешной работы на этом рынке компания должна разрабатывать, внедрять и сопровождать программное обеспечение быстро, в срок и с удовлетворительным качеством.
Поэтому многие компании вкладывают деньги в улучшение качества процесса, памятуя о том, что подобное вложение денег обязательно окупается, - изучение документированных случаев улучшения процессов разработки ПО показывает, что в успешных случаях наблюдается существенное улучшение производительности и качества со средним уровнем возврата вложений от 5:1 до 8:1 [1].
Существуют десятки различных подходов к обеспечению качества ПО, и у всех есть свои преимущества. Одной из первых моделей качества стал стандарт ISO (Международной организации по стандартизации) серии 9000, первая версия которого была выпущена в 1987 году. С тех пор сертификаты ISO серии 9000 сохраняют неизменную популярность и признаются во всем мире.
Однако время не стоит на месте, и методики, положенные в основу стандартов серии ISO 9000, постепенно устаревают. Выделим наиболее существенные недостатки:
• • недостаточная подробность стандарта, возможность самых различных его толкований в зависимости от представлений аудитора;
• • неточность оценки качества процессов, задействованных при создании и внедрении программного обеспечения;
• • отсутствие в стандарте механизмов, способствующих улучшению существующих процессов.
Перечисленные проблемы заставили экспертов разрабатывать более совершенные решения в области обеспечения качества, что привело к созданию в начале 90-х годов целого ряда новых стандартов и методологий. Опишем два наиболее удачных и содержательных стандарта – Capability Maturity Model (CMM) и ISO/IEC 15504 (SPICE). Существуют и другие достаточно развитые методологии, но, к сожалению, невозможно осветить все перспективные направления данной области.
Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.
Программирование считается творческой профессией. Но, увы, только до определенной степени у вас будет свобода действия, если вы программист. Ясно, если вы работаете, в компьютерной компании, то придется следовать стандартам разработки, принятым в коллективной разработке. Если же на предприятии внедрены стандарты ISO, которым должны подчиняться все, в том числе и программисты, то придется соответствовать. И это могут быть стандарты напрямую не связанные с тем, как вам писать код. Это могут быть стандарты интерфейса, корпоративных брендов или менеджмента программных продуктов, стандарты взаимодействия с клиентами, заказчиками.
Стандарты ISO не обошли стороной и сами языки программирования. На самом деле - это жесткая необходимость. Как пример, приведем стандарт С++17 (известен и как C++1z) — это версия стандарта C++ ISO/IEC. Спецификации для C++17 официально опубликованы в декабре 2017 года. Программисты С++ знают сколько мороки с поддержкой разных компиляторов с разными стандартами. Ваша программа может неадекватно обрабатываться неким компилятором если в коде есть специфические функции. И это - проблема.
Особенно важны стандарты ISO и для преемственности версий и для поддержки взаимодействия с другим софтом. Это и поддержка форматов файлов по стандартам ISO. Тот же стандарт SCORM для обмена курсами между разными системами электронного обучения - яркий пример. Нельзя не отметить, что не все так просто со стандартами и можно даже говорить о том, что наблюдается постоянная "война стандартов", но это уже тема другой публикации...
Заключение
В плане семантики языки программирования устроены значительно проще. Смысл ключевого слова не изменятся в зависимости от контекста, ситуации или культурного бэкграунда программиста. Семантика ЯП — это про осмысленность языковых конструкций, а в более широком смысле — про проверку правильности программ. Точнее, она используется для формальной верификации — то есть математического доказательства, что текст программы не содержит ошибок алгоритма и соответствует целям, ради которых создавался.
Парадигма программирования как исходная концептуальная схема постановки проблем и их решения является инструментом грамматического описания фактов, событий, явлений и процессов, возможно, не существующих одновременно, но интуитивно объединяемых в общее понятие.
Наиболее распространённая практика прикладного программирования на основе императивного управления и процедурно-операторного стиля построения программ получила популярность более пятидесяти лет назад в сфере узкопрофессиональной деятельности специалистов по организации вычислительных и информационных процессов.
Все значения простых типов данных (называемых иногда элементарными или примитивными) являются атомарными, то есть не имеют внутренней структуры. В этом пункте рассмотрим все простые типы, кроме подпрограммного, поскольку его имеет смысл обсуждать вместе с понятием подпрограммы.
Арифметические типы данных. В компьютерах эти типы данных представляют числа, поэтому действительно являются основными.
Реализация операций над вещественными числами сложнее с аппаратной точки зрения, поэтому в ряде архитектур вещественные числа вообще могут отсутствовать.
Символьные типы данных служат для представления символов (литер) алфавитов естественных языков, символов, управляющих работой устройств ввода/вывода(например, символ перехода на новую строку, табуляции и тому подобные), специальных символов (валютный знак).
Логический тип данных обозначается в языках С++ и C# Java ключевымсловом bool (boolean в Java). Он состоит их двух значений: true (истина)и false (ложь).Набор операций состоит из логического «и» - «&&», логического «или» -«||» и отрицания «не» - «!» с обычным математическим смыслом.
Основу отечественной нормативной базы в области документирования программных средств (ПС) составляет комплекс стандартов Единой системы программной документации (ЕСПД). Основная и большая часть комплекса ЕСПД была разработана в 70-е и 80-е годы. Сейчас этот комплекс представляет собой систему межгосударственных стандартов стран СНГ (ГОСТ), действующих на территории Российской Федерации на основе межгосударственного соглашения по стандартизации.
Существуют десятки различных подходов к обеспечению качества ПО, и у всех есть свои преимущества. Одной из первых моделей качества стал стандарт ISO (Международной организации по стандартизации) серии 9000, первая версия которого была выпущена в 1987 году. С тех пор сертификаты ISO серии 9000 сохраняют неизменную популярность и признаются во всем мире.
Стандарты ISO не обошли стороной и сами языки программирования. На самом деле - это жесткая необходимость. Как пример, приведем стандарт С++17 (известен и как C++1z) — это версия стандарта C++ ISO/IEC. Спецификации для C++17 официально опубликованы в декабре 2017 года. Программисты С++ знают сколько мороки с поддержкой разных компиляторов с разными стандартами. Ваша программа может неадекватно обрабатываться неким компилятором если в коде есть специфические функции. И это - проблема.
Список литературы
1. Ашарина, И. В. Основы программирования на языках C и C++ / И.В. Ашарина. - М.: Горячая линия - Телеком, 2012. - 208 c.
2. Бибило, П. Н. Задачи по проектированию логических схем с использованием языка VHDL. Учебное пособие / П.Н. Бибило. - М.: ЛКИ, 2015. - 328 c.
3. Биллиг, В. А. Основы объектного программирования на C# (C# 3.0, Visual Studio 2008) / В.А. Биллиг. - М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2016. - 584 c.
4. Буховец, А. Г. Алгоритмы вычислительной статистики в системе R. Учебное пособие / А.Г. Буховец, П.В. Москалев. - М.: Лань, 2015. - 160 c.
5. Васильев, П. П. Турбо Паскаль в примерах и задачах / П.П. Васильев. - М.: Финансы и статистика, 2016. - 496 c.
6. Вычислительная техника в инженерных и экономических расчетах. Учебник. - М.: Высшая школа, 2017. - 320 c.
7. Гавриков, М. М. Теоретические основы разработки и реализации языков программирования / М.М. Гавриков, А.Н. Иванченко, Д.В. Гринченков. - М.: КноРус, 2014. - 184 c.
8. Гергель, В. П. Современные языки и технологии параллельного программирования / В.П. Гергель. - М.: Издательство МГУ, 2012. - 408 c.
9. Герман, О. Программирование на Java и C# для студента / О. Герман, Ю. Герман. - М.: БХВ-Петербург, 2014. - 512 c.
10. Грегер, С. Э. Сервер приложений "Zope" / С.Э. Грегер. - М.: Горячая линия - Телеком, 2017. - 256 c.
11. Данильчук А.А., Юн С.Г., Новокрещенов Н.С. Характеристики и атрибуты качества систем мониторинга ИТ-инфраструктуры по ISO 9126 // Наука вчера, сегодня, завтра: сб. ст. по матер. VII междунар. науч.-практ. конф. № 7(7). – Новосибирск: СибАК, 2013.
12. Истомин Е., П. Информатика и программирование / Истомин Е. П., A. M. Власовец. - М.: Андреевский Издательский дом, 2013. - 294 c.
13. Задачи по программированию. - М.: Бином. Лаборатория знаний, 2014. - 824 c.
14. Зыков, С. В. Введение в теорию программирования. Курс лекций. Учебное пособие / С.В. Зыков. - М.: Интернет-университет информационных технологий, 2012. - 400 c.
15. Ишкова, Э. А. C#. Начала программирования / Э.А. Ишкова. - М.: Бином-Пресс, 2016. - 334 c.
16. Кетков, Ю. Л. Свободное программное обеспечение. FREE PASCAL для студентов и школьников (+ CD) / Ю.Л. Кетков, А.Ю. Кетков. - М.: БХВ-Петербург, 2012. - 376 c.
17. Культин, Никита Visual Basic для студентов и школьников / Никита Культин. - М.: БХВ-Петербург, 2012. - 354 c.
18. Медведик, В. И. Практика программирования на Паскаль. Задачи и решения. Учебное пособие / В.И. Медведик. - М.: ДМК Пресс, 2015. - 590 c.
19. Опалева, Э. А. Языки программирования и методы трансляции / Э.А. Опалева, В.П. Самойленко. - М.: БХВ-Петербург, 2015. - 480 c.
20. Павловская, Т. А. C/C++. Программирование на языке высокого уровня / Т.А. Павловская. - М.: Питер, 2013. - 464 c.
21. Павловская, Татьяна C/C++. Процедурное и объектно-ориентированное программирование. Учебник / Татьяна Павловская. - М.: Питер, 2015. - 496 c.
22. Программирование на С++. - М.: Корона-Принт, Альтекс - А, 2014. - 512 c.
23. Рапаков, Г. Г. Turbo Pascal для студентов и школьников / Г.Г. Рапаков, С.Ю. Ржеуцкая. - М.: БХВ-Петербург, 2012. - 352 c.
24. Санников, Е. В. Курс практического программирования в Delphi. Объектно-ориентированное программирование / Е.В. Санников. - М.: Солон-Пресс, 2013. - 188 c.