Файл: Международные и отечественные стандарты языков программирования. Сходство и отличия стандартов (Понятие и сущность языков программирования).pdf
Добавлен: 03.04.2023
Просмотров: 330
Скачиваний: 1
ВВЕДЕНИЕ
Актуальность выбранной темы «Международные и отечественные стандарты языков программирования» обусловлена необходимостью изучения установления правил и характеристик в целях их добровольного многократного использования, направленная на достижение упорядоченности в целях повышение конкурентоспособности продукции, работ или услуг. Стандарты давно используются в технике и программировании. Создание сложной системы немыслимо без стандартов. Они нужны для борьбы с хаосом и неразберихой, но вместе с этим стандарт не должен быть слишком «узким» и мешать техническому прогрессу.
Государственные стандарты отслеживают тенденции развития программирования и дают обязательные рекомендации по их соблюдению. Помимо государственных стандартов (ГОСТ) действуют отраслевые стандарты (ОСТ), стандарты предприятий (СТП).
Для многих распространённых языков программирования созданы как отечественные, так и международные стандарты.
Цель данной курсовой работы ⎯ определить особенности международных и отечественных стандартов языков программирования.
Для достижения поставленной цели исследования необходимо решить ряд задач:
- изучить теоретические аспекты программирования;
- рассмотреть отечественные и международные стандарты языков программирования;
- выявить проблемы и перспективы развития стандартов языков программирования.
Объектом исследования курсовой работы выступают языки программирования.
Предметом исследования выступают стандарты языков программирования.
При написании курсовой работы предполагается использовать различную литературу: нормативно-справочную, учебно-методическую, информационно-справочную, а также применять информацию интернет-ресурсов.
Цель и задачи исследования определили структуру курсовой работы.
В первой главе будут раскрыты теоретические аспекты программирования, в частности раскрыты понятие и сущность языков программирования, определены общие принципы построения и использования языков программирования. Во второй главе представлены особенности стандартов языков программирования, в частности: рассмотрены отечественные и международные стандарты языков программирования. В третьей главе представлены основные проблемы и перспективы развития стандартов языков программирования.
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ПРОГРАММИРОВАНИЯ
1.1 Понятие и сущность языков программирования
Языком программирования называется система обозначений и правил, позволяющая записать программу решения задачи в виде последовательного текста в удобном для человека виде.
В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. Программирование начиналось с записи программ непосредственно в виде машинных команд (в кодах, как говорят программисты). Компьютеры, стоившие в то время значительно дороже, чем разработка любой программы, требовали высокоэффективного кода. [1]
Для облегчения кодирования был разработан машинно-ориентированный язык Ассемблера, который позволял записывать машинные команды в символическом виде. Язык Ассемблера зависел от системы команд конкретного компьютера. Он был достаточно удобен для программирования небольших задач, требующих максимальной скорости выполнения. Однако крупные проекты разрабатывать на языке Ассемблера было трудно. [2]
Главная проблема состояла в том, что программа, написанная на Ассемблере, привязана к архитектуре конкретного компьютера и не могла быть перенесена на другие машины. При усовершенствовании компьютера все программы на Ассемблере приходилось переписывать заново.[3]
Почти сразу с возникновением компьютеров были разработаны языки высокого уровня, т.е. языки, не зависящие от конкретной архитектуры. Для выполнения программы на языке высокого уровня ее нужно сначала перевести на язык машинных команд. Специальная программа, выполняющая такой перевод, называется транслятором или компилятором. Оттранслированная программа затем выполняется непосредственно компьютером. Существует также возможность перевода программы на промежуточный язык, не зависящий от архитектуры конкретного компьютера, но, тем не менее, максимально приближенный к языку машинных команд. Затем программа на промежуточном языке выполняется специальной программой, которая называется интерпретатором. Возможен также вариант компиляции "на лету", когда выполняемый фрагмент программы переводится с промежуточного языка на язык машинных команд непосредственно перед выполнением.[4]
На рисунке 1 можно увидеть основные виды языков программирования.
Рисунок 1 – Виды языков программирования[5]
Классификация языков программирования от низких до высоких уровней зависит от того, настолько близок язык к человеку. Чем меньше язык программирования понятен человеку, тем по уровню он ниже.
Большая часть языков преобразуется в понятный машине код с помощью программ-трансляторов. С их помощью прописываются лексические, семантические и синтаксические правила, которые определят, какие действия запросит пользователь и внешний вид программы.
Язык программирования - неотъемлемая часть работы любого компьютера. В современном мире с ними работают программисты, которые прописывают коды и создают программы с использованием сложных кодовых конструкций. [6]
В тексте на любом естественном языке можно выделить четыре основных элемента:
- символы,
- слова,
- словосочетания,
- предложения.
Подобные элементы содержит и алгоритмический язык, только слова называют лексемами (элементарными конструкциями), словосочетания – выражениями, а предложения – операторами. [7]
Лексемы образуются из символов, выражения – из лексем и символов, а операторы, в свою очередь, из символов, выражений и лексем, как показано на рисунке 2.
Рисунок 2 – Состав алгоритмического языка[8]
Алфавит языка, или его символы — это основные неделимые знаки, с помощью которых пишутся все тексты на языке.
Лексема, или элементарная конструкция, — минимальная единица языка, имеющая самостоятельный смысл.
Выражение задает правило вычисления некоторого значения.
В свою очередь, оператор задает законченное описание некоторого действия.
Для описания сложного действия требуется последовательность операторов. Операторы могут быть объединены в составной оператор, или блок. В этом случае они рассматриваются как один оператор.
Операторы бывают исполняемые и неисполняемые. Исполняемые операторы задают действия над данными. Неисполняемые операторы служат для описания данных, поэтому их часто называют операторами описания или просто описаниями.[9]
Каждый элемент языка определяется синтаксисом и семантикой. Синтаксические определения устанавливают правила построения элементов языка, а семантика определяет их смысл и правила использования.
Объединенная единым алгоритмом совокупность описаний и операторов образует программу на алгоритмическом языке.[10]
В настоящее время языки программирования применяются в самых различных областях человеческой деятельности, таких как:
- научные вычисления (языки C++, FORTRAN, Java);[11]
- системное программирование (языки C++, Java);
- обработка информации (языки C++, COBOL, Java);
- искусственный интеллект (LISP, Prolog);
- издательская деятельность (Postscript, TeX);
- удаленная обработка информации (Perl, PHP, Java, C++);
- описание документов (HTML, XML).[12]
С течением времени одни языки развивались, приобретали новые черты и остались востребованы, другие утратили свою актуальность и сегодня представляют в лучшем случае чисто теоретический интерес.
В значительной степени это связано с такими факторами, как:
- наличие среды программирования, поддерживающей разработку приложений на конкретном языке программирования;
- удобство сопровождения и тестирования разрабатываемых программ;
- стоимость разработки с применением конкретного языка программирования;
- четкость и ортогональность конструкций языка;
- применение объектно-ориентированного подхода.
1.2 Стандартизация языков программирования
Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику.
Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.[13]
Концепция языка программирования неотрывно связана с его реализацией. Для того чтобы компиляция одной и той же программы различными компиляторами всегда давала одинаковый результат, разрабатываются стандарты языков программирования. Существует ряд организаций, целенаправленно занимающихся вопросами стандартизации. Это Американский национальный институт стандартов ANSI (American National Standards Institute), Институт инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronic Engineers), Организация международных стандартов ISO (International Organization for Standardization).[14]
Как правило, при создании языка выпускается частный стандарт, определяемый разработчиками языка. Если язык получает широкое распространение, то со временем появляются различные версии компиляторов, которые не точно следуют частному стандарту. В большинстве случаев идет расширение зафиксированных первоначально возможностей языка.
Для приведения наиболее популярных реализаций языка в соответствие друг с другом разрабатывается согласительный стандарт. Очень важным фактором стандартизации языка программирования является своевременность появления стандарта – до широкого распространения языка и создания множества несовместимых реализаций.
В процессе развития языка могут появляться новые стандарты, отражающие современные нововведения. Так, язык FORTRAN первоначально был стандартизирован в 1966 году. В результате был издан стандарт FORTRAN 66. Далее этот стандарт несколько раз пересматривался (в 1977 году был выпущен FORTRAN 77, затем появился и FORTRAN 90).[15]
В процессе развития языка некоторые его конструкции и функции устаревают. Однако с целью обратной совместимости новые версии должны поддерживать и все устаревающие возможности. Это ведет к «разбуханию» компиляторов.
В последнее время в реализациях введено понятие не рекомендуемой и устаревшей возможности. В первом случае следующий стандарт еще будет поддерживать не рекомендуемую возможность, но может перевести ее в категорию устаревшей. Во втором случае стандарт может исключить поддержку возможности, объявленной ранее как устаревшая. [16]
У каждого языка программирования есть специальный документ, который называется стандартом языка программирования. В нем подробно описаны правила этого языка. Так как языки программирования постоянно развиваются, время от времени выходят новые стандарты.[17]
Как правило, компилятор или IDE должны поддерживать все возможности языка, то есть если что-то описано в стандарте, то это должно работать в любой IDE и в любом компиляторе данного языка. Но, как говорится, гладко было на бумаге, да забыли про овраги. Реальность можно примерно изобразить схемой из приложения.
Необходимость стандартов языков программирования – компиляция одной и той же программы различными компиляторами должна давать одинаковый результат.
Вопросами стандартизации занимается 3 основные организации:
1. Американский национальный институт стандартов – ANSI (American National Standards Institute);