Файл: Международные и отечественные стандарты языков программирования. Сходство и отличие стандартов..pdf
Добавлен: 03.04.2023
Просмотров: 977
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. Общее представление о стандартах языкового программирования
1.1. Становление системы отечественных стандартов языкового программирования
1.2. Изучение международных стандартов языкового программирования
Глава 2. Отечественный и международный подход к изучению конструкции языков программирования
2.1. Основные проблемы стандартизации языков программирования
2.2 Влияние информатизации общества на стандарты языкового программирования
В настоящее время наиболее известными отечественными разработками в области автоматических библиотек Леонидова Г.Ф. выделяет ППП, «ИРБИС», «МАРК-SQL», «OPAC-Global», «Библиотека-3», «Библиобус», «Руслан», Академия+», «Буки». Среди зарубежных можно выделить: «liberMedia» «Absotheque UNICODE» (Франция), «VIRTUA» (США), «Aleph» (Израиль). [15, с. 16]
Согласно открытых источников web - сайта Glassdoor, где сотрудники, как бывшие, так и настоящие имеют возможность анонимно провести обзор компаний рынка IT – индустрии, по-прежнему следует считать эпицентром развития мировых информационных технологий американские компании, среди них: Citrix Systems, Intel, Yahoo, Cisco System, Microsoft, eBay, Apple, Facebook, Twitter, Google и другие.[36]
Ведущие IT-компаний России: CROC, IBS, Technoserv A/C, Compulink, Fun box, СКБ «Контур», ЕРАМ, JustWork, Яндекс и другие.[37]
Вывод:
Период с последнего десятилетия XX века по настоящее время характеризуется интенсивным развитием стандартизации в области программирования. Данная деятельность осуществляется как официальными международными, национальными, ведомственными организациями стандартизации, так и индустриальными консорциумами.
Примечательны слова Д. Вайнберга: «Если бы строители строили здания так же, как программисты пишут программы, то первый же залетевший дятел разрушил бы всю цивилизацию». Для приостановки «полета дятла» и необходимы стандарты, их создание обеспечивает переносимость приложений и информационных ресурсов между различными программно-аппаратными платформами.
Среди более восьми тысяч языков самую заметную роль в развитии программирования сыграли три пары: Algol-60 и Fortran, Pascal и C, Java и С++. Противостояние, заложенное в этих парах, способствовало прогрессивному развитию языков программирования Языки программирования используют символические обозначения (имена, идентификаторы) для данных
Очевидно, что проблема стандартизации связана с исследованием промышленного производства программ, отбором и фиксацией используемых языков– кандидатов в стандартизацию, так как стандарт приобретает влияние и значимость, если язык начинает широко распространяться.
Однако в настоящее время наблюдается некоторое «затишье» в создании новых стандартов программирования, при этом деятельность по созданию, совершенствованию и развитию отечественных и международных стандартов продолжается, как продолжается процесс внедрения инновационных технологий в каждую сферу человеческой деятельности.
Глава 3. Сходства и отличия стандартов языкового программирования в России и за рубежом
Сравнивая между собой конструкции современных языков программирования и выделив их общую составляющую, можно описать «универсальный» язык программирования, имеющий центральные компоненты, имеющиеся во всех основных языках программирования. Такие компоненты являются основой любого современного языка, которые прошли проверку временем и практикой. [25, с. 20-34]
Существующая ныне система стандартизации языков программирования не способствует выполнению этой задачи. Главная проблема состоит в том, что при описании стандарта семантическая составляющая не отделена от синтаксиса и лексики. При модернизации стандартов комитеты ISO/ANSI предпочитают скорее добавлять в язык новые возможности, чем исключать редко используемые, что приводит к неоправданному расширению языков. По мнению Андреева А. необходимо отделить семантику каждой языковой конструкции от синтаксиса и лексики, а также разработать единые правила описания семантики языка программирования.[38]
Языки программирования изменяются гораздо более динамично, чем естественные языки, однако постоянно нуждаются в стандартизации. При отсутствии единого стандарта языка программирования разработчики трансляторов будут вправе вносить любые изменения в язык, какие сочтут нужными. Разработчики прикладных программ заинтересованы в том, чтобы различные трансляторы одного и того же языка программирования поддерживали одинаковые правила языка, избегая необходимости переписывать программу заново каждый раз при замене транслятора. При этом на практике различия в реализациях языков направлены в сторону расширения стандартных конструкций языка, а не их замены. Обычно документация по конкретному транслятору содержит раздел «Отличия от стандарта», который позволяет разработчикам прикладных программ освоить особенности конкретной реализации языка.[39]
Признаки эффективного использования стандартного языка программирования - повышение качества кода:
1.-набор используемых символов оказывает решающее воздействие на остальные строительные элементы синтаксиса. До недавнего времени наиболее распространенным считался набор «американский стандартный код для обмена информацией», 7-разрядный, обеспечивает представление 128 символов, включая латинские буквы, цифры, знаки основных математических операций и знаки пунктуации. Позже появилась европейская модификация ASCII, называемая Latin 1 (стандарт ISO 8859-1). В ней используются 8 разрядов, дополнительные комбинации (коды 128-255) отводятся для представления специфических групп алфавитов западноевропейских языков, символов псевдографики, некоторых букв греческого алфавита, ряда математически и финансовых символов. В зависимости от использования кодов 128-255 различают несколько вариантов стандарта ISO 8859 (табл. 4); [9, с. 148-149]
В 1993 году консорциумом компании Apple Computer, Microsoft, Hewlett-Packard. DEC и IBM был разработан 16-ти битовый стандарт ISO 10646, определяющий универсальный набор символов. Новый код позволяет задать 65536 символов.[40]
2. отображением множества кодов на множество символов. Например, русские кодировки КОИ-8 (Код обмена информацией восьмибитовый) и "Windows CP-1251", традиционно используемые в операционных системах Unix и MS Windows, имеют один и тот же диапазон кодов, и один и тот же набор символов, но отображения их различны (одни и те же символы имеют разные коды в кодировках КОИ-8 и Windows). [7, с. 35-36]
Одно из высказываний разработчика языка С, Герба Саттера: «Лучшее в стандарте то, что предоставляет большой выбор». [41]
При этом очевидно сама цель существования стандарта – это упорядочение, снижение количества выборки. К сожалению, российские программисты не сумели договориться о единой кодировке русских букв. В настоящее время в России широко используются четыре различные кодировки:
1. кодировка КОИ-8 (это наиболее старый стандарт, принятый еще в конце 70-х годов XX века). КОИ-8 в основном используется в системе Unix и до недавнего времени была стандартом де-факто для русскоязычной электронной почты. Последнее время, однако, все чаще в электронной почте используют кодировку Windows;
2. так называемая альтернативная кодировка CP-866, которая используется в системе MS DOS. Она не удовлетворяет некоторым требованиям международных стандартов - например, ряд русских букв совпадает с кодами символов, используемых для управления передачей по линии. Альтернативная кодировка постепенно уходит в прошлое вместе с системой DOS;
3. кодировка Windows CP-1251, которая появилась значительно позже кодировки КОИ-8, но создатели русской версии Windows не захотели воспользоваться КОИ-8 (по-видимому, из-за того, что коды русских букв в КОИ-8 не упорядочены в соответствии с алфавитом; в CP-1251 коды русских букв упорядочены, за исключением буквы е). В связи с распространением операционной системы Windows, кодировка Windows получает все большее распространение;
4. кодировка, используемая в компьютерах Apple Macintosh.
Существование различных кодировок русских букв сильно осложняет жизнь как программистам, так и обыкновенным пользователям: файлы при переносе из одной системы в другую приходится перекодировать, периодически возникают трудности при чтении писем, просмотре гипертекстовых страниц и т.п. Отметим, что ничего подобного нет ни в одной европейской стране.
С повсеместным переходом на кодировку Unicode все проблемы такого рода должны исчезнуть. Кодировка Unicode, стандарт которой принят в 1991 году, включает символы алфавитов всех европейских стран и кириллицу. К сожалению, большинство существующих компьютерных программ приспособлено к представлению одного символа в виде одного байта. Поэтому в настоящее время часто используется промежуточное решение: компьютерные программы работают с внутренним представлением символов в кодировке Unicode (такое решение принято в языках Java и C#). При записи в файл символы Unicode приводятся к однобайтовой кодировке в соответствии с текущей языковой установкой. [7, с. 45]
Доцент Ростовского социально-экономического института А.А. Хлебников выделяет в языке Си тип char, представляя значение символа, реализуемое одним байтом. При этом тип wchar_t используется для C++, реализуются два байта. [23, с. 15]
Использование символов за пределами ASCII (например, символов KOI8-R или символов Юникода) зависит от реализации: иногда они разрешаются только в комментариях и символьных/строковых константах, а иногда и в идентификаторах. В СССР существовали языки, где все ключевые слова писались русскими буквами, но популярность подобные языки не завоевали (исключение составляет Встроенный язык программирования 1С: Предприятие). [1, c. 84]
Принятые в настоящее время способы описания как национальных, так и международных стандартов языков программирования имеют общие недостатки, снижающие эффективность внедрения стандартов. До сих пор отсутствует единый способ описания стандартов. [8, с. 30]
Расширение набора используемых символов сдерживается тем, что многие проекты по разработке программного обеспечения являются международными. Очень сложно было бы работать с кодом, где имена одних переменных записаны русскими буквами, других — арабскими, а третьих — китайскими иероглифами. Вместе с тем, для работы с текстовыми данными языки программирования нового поколения (Delphi 2006, C#, Java) поддерживают Unicode.[42]
По мнению Дугласа Крокфорд, ведущего специалиста по JavaScript в Yahoo, создателя и популяризатора формата JSON (JavaScript Object Notation), любой язык программирования несет свои сильные и слабые стороны. Комитеты по стандартизации могут убрать из языка неудачные фрагменты, способные привести к сбою программ, в которых эти «несовершенные программы» необходимы для использования. На практике добавляются новые функции к многочисленным уже существующим и не слишком удачным, причем эти новые функции не всегда гармонично сочетаются, что порождает новые проблемы. Язык программирования JavaScript считает языком контрастов, в котором много ошибок и сложностей. Java мог бы стать альтернативой строго типизированного классического языка, но разработчики потерпели неудачу, при этом JavaScript процветает.[43]
Многие современные языки программирования имеют стандарты. Это языки С/С++, С#, Ada, Fortran, Cobol, Pascal. Наиболее доступны стандарты языков С/С++, поскольку по этому вопросу имеется обширная литература и разработчики транслятора не позволяют себе существенных отклонений от стандарта. С языком Pascal сложилась иная ситуация. Многочисленные учебники содержат описание популярной, но не единственной реализации языка Borland Pascal (Turbo Pascal). Кроме того, существует обширная литература Delphi, в которой описывается диалект Object Pascal. [11, с. 24]
Рапаков Г.Г. и Ржеуцкая С.Ю. считают, что среди многообразия языков программирования, одним из лучших является Pascal. Первый стандарт Pascal разработан в 1983 году, практически полностью совпадает с описанием Вирта, утвержден позже (EN 27185:1992). Второй стандарт - это расширенный вариант языка, ANSI/ISO/IEC 10206:1991. Последний стандарт Object Pascal (часто употребляем как Delphi) формально не утвержден, но оформлен в виде отчета в 1993 году ANSI/ХЗ-TR-13-1994.[44]
По версии методической преподавательской работы Центра Компьютерного обучения Московского государственного института электронной техники (технического университета): в настоящее время язык Object Pascal является одним из более распространенных языков программирования, поскольку идеально подходит для обучения основам программирования и вместе с тем имеет возможности для написания профессиональных программ. [1, с. 3-4]
Следует согласиться с мнением Герба Саттера и Андрея Александреску о целесообразности применения стандартов языкового программирования, которые обеспечивают повышение качества кода, а однотипное решение одинаковых задач повышает скоростные показатели и ясность. При работе в команде IT –специалистов использование стандарта позволяет уменьшить разногласия среди них и направить внимание разработчиков на действительно важные детали. [45]
Вывод:
В настоящее время отечественные и зарубежные программисты заняты разработкой универсального кода для универсального языка. Стандарты языкового программирования безусловно способствуют естественному отбору. Прогресс IT-технологий стремительно движется вперед. Выборка, с которой приходится работать организациям по стандартизации, увеличивается столь же интенсивно, сколько появляется новых предложений на рынке продаж.
Одним из показателей эффективности стандартизации языка считается повышение качества кода, что подтверждает саму цель существования стандарта языкового программирования – упорядочение выборки.