Файл: Международные и отечественные стандарты языков программирования. Сходство и отличие стандартов..pdf
Добавлен: 03.04.2023
Просмотров: 969
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. Общее представление о стандартах языкового программирования
1.1. Становление системы отечественных стандартов языкового программирования
1.2. Изучение международных стандартов языкового программирования
Глава 2. Отечественный и международный подход к изучению конструкции языков программирования
2.1. Основные проблемы стандартизации языков программирования
2.2 Влияние информатизации общества на стандарты языкового программирования
На его основе Pascal Вирт разработал два новых языка – Modula (1970) и Oberon (1985), представляющие собой дальнейшее развитие Pascal. Но эти языки не получили популярности.[24]
Язык APL оказал влияние на функциональное программирование и стал первым языком, поддерживавшим обработку массивов. [5, c. 67]
Apl – язык, предназначенный для решения математических задач, отличается простотой и лаконичностью записи, развитыми средствами работы с векторами и матрицами, удобными средствами диалога. [8, с. 145]
Язык Simula, появившийся примерно в это же время, впервые включал поддержку объектно-ориентированного программирования. В середине 1970-х группа специалистов представила язык Smalltalk, который был уже всецело объектно-ориентированным, включал среду разработки с редактором текста. [6, с. 56]
В период с 1969 по 1973 годы велась разработка языка Си, популярного и по сей день и ставшего основой для множества последующих языков, например, столь популярных, как С++ и Java.
С++ – компилируемый статистически типизированный язык программирования общего назначения, поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов объектов, виртуальные функции. Стандартная библиотека включает общеупотребительные контейнеры и алгоритмы. В отличие от языка Си наибольшее внимание уделено поддержке объектно-ориентированного и обобщенного программирования. [18, c. 48]
Синтаксис С++ унаследован от языка С, при разработке С++ одним из принципов было сохранение совместимости с Си. Тем не менее язык С++ в строгом смысле не является надмножеством Си; множество программ, которые могут одинаково успешно транслироваться, как компиляторами Си, так и компиляторами С++.[25]
В 1972 году был создан Пролог - наиболее известный язык логического программирования, основан на аппарате математической логики. Программа содержит объявления фактов и вопросов об объектах и их отношениях, объявления правил отношений.[26]
В 1973 году в языке ML была реализована расширенная система полиморфной типизации, положившая начало типизированным языкам функционального программирования. [27]
Среди большого числа языков самую заметную роль в развитии программирования сыграли три пары: Algol-60 и Fortran, Pascal и C, Java и С++. Противостояние, заложенное в этих парах, способствовало прогрессивному развитию языков программирования. [16, с. 20]
Отличительную особенность языков составляют национальные и межнациональные стандарты. Проявляется принцип гармонизации стандартов – все стандарты, относящиеся к одному объекту, должны соответствовать друг другу. [10, с. 6]
Программа, написанная на языке программирования, проходит этап трансляции, когда происходит преобразование исходного кода программы в объектный код, который далее пригоден к обработке редактором связи, специальной программы, обеспечивающая построение загрузочного модуля, пригодного к выполнению. Трансляция может выполняться с использованием средств компилятором и интерпретаторов. Компиляторы транслируют всю программу, но без ее выполнения. Интерпретаторы выполняют пооперационную обработку и выполнение программы. Необходимым средством для разработки программы являются программы-отладчики, предназначенные для трассировки и анализа выполнения других программ. [16, с. 16]
В некоторых языках, например, Ada, созданного в 1980 году, Джином Ишбиа (Америка), строгая типизация вынуждает программиста явно описывать тип всех значений и функций. Чтобы избежать этого, в строго типизированные функциональные языки встроен специальный механизм, позволяющий компилятору определить типы констант, выражений и функций из контекста.[28]
Основной недостаток традиционной практики составления программ для ЭВМ заключается в том, что никто не может гарантировать отсутствия ошибок в программе. Особенностью традиционной практики является поиск ошибок в программах при их отладке на ЭВМ. [21, с. 135]
Утверждение Дениса Ритчи о том, что у «стандартов слабые зубы», достаточно справедливо, но, когда язык начинает широко распространяться, стандарт все же приобретает и влияние, и значимость. Отчасти это происходит просто потому, что его можно публично критиковать, отчасти — из-за того, что он придает проекту определенную весомость.[29]
Российское программирование имеет богатую историю, ведущую свой отчет от 50-х годов, когда программирование в основном предназначалось для решения военных и промышленных задач, например, для точного расчета места приземления космического корабля Юрия Гагарина. Ранние успехи советского программирования во многом связаны с тем, что советская экономика всегда была сильно индустриализованной и технически ориентированной. Растущая потребность в программистах была разрешена путем переориентации части математиков и физиков на информатику. В те времена количество программистов было очень небольшим, так как область применения программирования была достаточно ограниченной. Тем не менее, к концу 60-х годов советская школа программирования находилась на мировом уровне и в промышленной разработке программ, и в научных исследованиях. С начала 70-х годов в программировании, как и в ряде других отраслей, начали наблюдаться первые признаки застоя. [30]
Впервые в нашей стране появились публикации относительно стандартизации языков программирования в 1989 году. Александров А.Л., Бабенко Л.П., Кауфман В.Ш. и Ющенко Е.Л. в своей книге рассмотрели действующие стандарты, их роль в промышленном изготовлении программ и перспективы. В книге проанализирован накопленный опыт в данной области как в нашей стране, так и за рубежом, раскрываются последовательные этапы проектирования, разработки, описания и применения стандартов языков программирования. Изложение основано на положениях и понятиях, принятых государственной системой стандартизации и международными организациями по стандартизации. [10, с. 3]
Стандартизация воспринималась не просто как один из способов экономить ресурсы, а единственно возможный способ решения определенного класса жизненно важных проблем. [10, с. 10]
Доцент кафедры информационных систем и технологий высшей школы информационных технологий и автоматизированных систем САФУ Абрамова Л.В. считает, что в настоящее время в качестве индустриальной среды используется конкретная среда программирования (Delphi, Access и др.) и знание базового языка программирования не требуется. Круг используемых языков программирования стабилизировался. Анализ синтаксиса и семантики языков программирования показывает, что их родственные конструкции различаются «внешним видом» (набором ключевых слов, порядком набора компонентов). Таким образом конструкции современных языков имеют общее содержание (семантику), различный порядок следования компонент (синтаксис) и разные ключевые слова (лексику). [31]
2.1. Основные проблемы стандартизации языков программирования
В конце XX века была распространена организация стандарта языкового программирования по принципу «ядро + модули», например, языки: Cobol, Basic, Fortran-8х. Каждый такой стандарт состоит из ядра и совокупности модулей, которые состоят из совокупности языковых конструкций. В ядре и модуле могут быть выделены вложенные уровни. Подобная организация стандарта позволяет обеспечить выбор такого стандартного подмножества, которое наиболее полно будет удовлетворять потребностям конкретных пользователей и возможностям реализации стандарта языка.[32]
Остановимся на основных проблемах стандартизации языков программирования, выделяя четыре: отбор, описание, контроль, согласование. Любая деятельность по стандартизации преследует цель выпуска стандартизованной продукции. Поэтому основная проблема стандартизации - это отбор языков, подлежащих стандартизации, определением их стандартов, контролем за соблюдением требований и взаимосвязью стандарта языка программирования со стандартами, регламентирующими окружение языка. [10, с. 8]
Проблема связана с исследованием промышленного производства программ, фиксацией используемых языков и отбором языков – кандидатов в стандартизацию. Вторая проблема стандартизации языков программирования связана как с отсутствием общепризнанных методов точного описания языков программирования, так и с особой природой стандартов как документов, предназначенных для чрезвычайно разнородной аудитории – от специалистов по реализации языков программирования до работников службы стандартизации. В связи с этим общепринятым средством описания стандартов языков программирования остается естественный язык (русский, английский и т.д.) Третья проблема стандартизации связана не только с относительно небольшим опытом, но и с сущностью задачи. Прежде всего она касается определения объектов стандартизации, подлежащих контролю, возможности проведения контроля в принципе и его эффективности, перечня контролируемых ограничений и реакций на отклонение от стандарта. При контроле программ указанные трудности по существу связаны со стремлением понимать стандарт не как совокупность проверяемых содержательных требований, а как «идеологический» документ, предназначенный для управления мышлением разработчиков программ. Четвертую проблему связывают с неразвитостью стандартов среды функционирования программ. [10, с. 8-9]
Обозначают еще одну проблему и в международном журнале об открытиях информационной технологии – выбор языка программирования ввиду наличия у каждого из них инструментария. Проблема переносимости сейчас затрагивает большую часть программ, имеющихся на рынке, так как экономически не выгодно разрабатывать отдельные приложения для платформ. У программистов нет возможности работать только, используя понравившиеся программы, соблюдая изученные стандарты языкового программирования. Встает вопрос о совмещении инструментария, так как при наличии большого количества различных подходов, на практике ни один не является идеальным. В настоящее время решение о выборе технологий должно принимается, исходя из требований к программе и возможностей компании.[33]
2.2 Влияние информатизации общества на стандарты языкового программирования
Стандартизацию языков программирования в настоящее время осуществляют комитеты OSO/ANSI, однако их деятельность направлена на неоправданное синтаксическое расширение языков. Для исключения существующих недостатков предложены способы задания семантического и синтаксического стандартов языков программирования. Семантическое описание любой конструкции языка (оператор, тип данных, процедура и т.д.) должно содержать не менее трех обязательных частей: список компонент, описание каждой компоненты, описание конструкции в целом. [16, с. 20]
На одиннадцатой открытой Всероссийской конференции по теме преподавания информационных технологий в Российской Федерации говорилось о сотрудничестве между специалистами IT-технологий университетов России и Intel в области развития инициативы в сфере разработки и применения современных инструментов программирования. В рамках программы на 2013 год были разработаны сертификационные программы подготовки профессиональных программистов – специалистов в области параллельного программирования с использованием инструментов Intel, которые отражены на портале Национального открытого университета «Интуит». [18, с. 2]
Российский рынок информационных технологий образовался примерно в начале 90-х годов прошлого века. Понадобилось всего десять лет, чтобы на нем сформировались успешные компании по производству и внедрению информационных технологий. Для IT-бизнеса очевидным стала необходимость тесного сотрудничества с государством для дальнейших перспектив развития. Как следствие в 2001 году создана некоммерческая организация, защищающая интересы отрасли, Ассоциация предприятий компьютерных и информационных технологий (АП КИТ).[34]
Согласно данным официального сайта АП КИТ в 2001 году состоялось учредительное собрание Ассоциации предприятий компьютерных и информационных технологий (далее АПКИТ). В собрании приняли участие компании: 1С, 3COM, ABBYY, Aquarius, ARRAVA, Cable & Wireless, Cisco Systems, Cognitive Technologies, Compaq, Compulink, DPI, EDventure Holdings Inc., ELST, Hewlett-Packard, IBM, IBS, Intel, iТeco, Kraftway Computers, Microsoft, Oracle, R-Style, Verysell, XEROX, АСК, АКСИТ, Белый Ветер, Диалог Наука, ИВК, Интерфейс, Корус АКС, Кречет, Лаборатория Касперского, Ланит, Марвел, МОНТ Дистрибуция, НПП НАМИП, Пирит и др.[35]