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

Современные языки программирования (Концепция языка программирования)

Содержание:

Введение

Технология программирования не стоит на месте и постоянно развивается с учетом новых потребностей в сфере IT-технологий. Существуют два главных требования для языков программирования: их близость к обычному профессиональному языку определенной сферы деятельности и простота реализации. Противоречивость требований стимулирует непрерывный процесс создания новых языков и доработки существующих.

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

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

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

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

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

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

Задачи исследования:

1. Ознакомления с языками программирования.

2. Рассмотрение классификации языков программирования.

3. Обзор современных языков программирования.

4. Сопоставительная характеристика языков программирования.

Глава 1. Понятие и классификация языков программирования

1.1.Концепция языка программирования

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

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

Имеется многое различных языковед программирования. Вообще-тоё для решения большинства задач можно использовать любой изо них. Опытные программисты знают, какой язык лучше использовать для решения каждой конкретной задачи, такт как каждый изо языков имеет свои возможности, ориентацию над определённые типы задач, свой способный описания понятийный и объектовый, используемых приз решении задач. [3]

Всё множество языковед программирования можно разделиться на дверь группы: языки низкогорье уровня и языки высокогорье уровня.

К языкам низкогорье уровня относятся языки ассемблера (ото англ. to assemble – собираться, компоноваться). В языке ассемблера используются символьные обозначения команда, которые легковер понятны и быстрота запоминаются. Вместо последовательности двоичных кодовый команд записываются ихний символьные обозначения, а вместо двоичных адресовать данных, используемых приз выполнении командный, - символьные имена этих данных, выбранные программистом. Иногда язык ассемблера называют мнемокодом или автокодом.

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

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

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

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

1.2 Классификация языковед программирования

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

Машинность-ориентированные языки под степени автоматического программирования подразделяются над классы.

Машинный язык. Отдельный компьютерный имеет свой определенный Машинный язык (далече МЯ), ему предписывают выполнение указываемых операций надо определяемыми имидж операндами, поэтому МЯч является командным. Однако, некоторые семейства ЭВМ (например, ЕСи ЭВМ, IBM/370/ и драм.) имеют единый МЯч для ЭВМ разной мощности. В команде любого изо них сообщается информация о местонахождении операндов и типец выполняемой операции. [9]

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

Языки Символического Кодирования. Языки Символического Кодирования (далече ЯСК), такт же, какао и МЯч, являются командными. Однако коды операций и адресат в машинных командах, представляющие собой последовательность двоичных (воз внутреннем кодер) или восьмеричных (частное используемых приз написании программа) цифра, в ЯСК заменены над символы (идентификаторы), формат написания которых помогает программисту легче запоминать смысловое содержание операции. Этот обеспечивает существенное уменьшение числа ошибочка при составлении программа.

Автокоды. Есться также языки, включающие в себя всего возможности ЯСК, посредством расширенного введения макрокоманд - оникс называются Автокоды. В различных программах встречаются некоторые достаточность часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедура обеспечивается оформлением ихний в видео специальных макрокоманд и включением последних в язык программирования, доступный программисту.

Макрокоманды переводятся в машинные командный двумя путями – расстановкой и генерированием. В постановочной системе содержаться «остовый» - серицин команд, реализующих требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остовый» программный, превращая её в реальную машинную программу. В системе с генерацией имеются специальные программный, анализирующие макрокоманду, которые определяют, какую функцию необходимость выполнить и формируют необходимую последовательность команда, реализующих данную функцию. Обед указанных системный используют трансляторы с ЯСК и наборный макрокоманд, которые также являются операторами автокода. Развитые автокоды получили названьице Ассемблеры. Сервисные программный и пре., какао правило, составленный на языках типаж Ассемблер. [6]

Макрос. Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ над более сжатую формула - называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократиться запись исходной программный. Компонента программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. Над макропроцессор поступает макроопределяющий и исходный текстиль. Реакция макропроцессора над вызов-выдача выходного текста. Макрос одинаковость может работаться, какао с программами, такт и с данными.

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

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

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

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

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

Проблемных языковед очень многое, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол – для работный со списочными структурами. О нихром я расскажу дальше.

Универсальные языки. Универсальные языки былина созданы для широкого кругаль задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык быль разработан фирмой IBM, ставший в последовательности языковед Пл/1. Второй под мощности универсальный язык называется Алгол-68. Оно позволяет работаться с символами, разрядами, числами с фиксированной и плавающей запятой. Пли/1 имеет развитую систему операторов для управления форматами, для работный с полями переменной длинный, с данными организованными в сложные структурный, и для эффективного использования каналовый связи. [14]

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

Диалоговые языки. Появление новых технических возможностей поставило задачу передо системными программистами – создаться программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ ихний назвали диалоговыми языками. Этил работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия над прохождение задач, которые составлялись над любых раннее неразработанных (нет диалоговых) языках. Разрабатывались также языки, которые кромлех целей управления обеспечивали бык описание алгоритмов решения задач. [2]

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

Одним изо примеров диалоговых языковед является Бейсик. Оно использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языкатый Фортран. Поэтому этот язык позволяет решаться достаточно широкий кругом задач. [3]

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

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

Глава 2. Стандартизация языковед программирования и ихний виды

2.1. Стандартизация языковед программирования

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

Типы данных

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

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

Структурный данных

Системный типов в языках высокогорье уровня позволяют определяться сложные, составные типы, такт называемые структурный данных. Какао правило, структурные типы данноых образуются какао декартово произведение базопвых (атомарных) типовой и ранее определённых состуавных типовой. Основные структурный данных (списки, очередник, хеш-таблицы, двоичные дережвья и парсы) частное представленный особыми синтаксическими конструкциями в языках высокогорье уровнять. Такие данные структурируются автоматический. [1]

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

Существует несколько подхцодов к определению семантики языковед программирования. Наиболее широконек распространены разновидности следеующих трёх: операционного, денотационного (математического) и деривационного (аксиоматического). Приз описании семантики в рамклах операционного подходка обычность исполнение конструкций языкатый программирования интерпретируется с помощью некоторой вообвражаемой (абстрактной) ЭВМ.

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

Парадигма программирования

Язык программирования строиться в соответствии с тойон или иной базовой моделью вычийслений и парадигмой программирования. Несмотря над тоё, чтоб большинство языковед ориентировано над императивную модельер вычислений, задаваемую фонд-неймановской архитектурой ЭВМ, существуют и другие подходный. Можно упомянуть языкли сок стековой вычислительной моделью (Forth, Factuor, Postscript и драм.), а также функциональное (Лисп, Hasklell, ML и драм.) и логическое программирование (Пролог) и язык Рефал, оснопванный над моделизм вычислений, введённой совежтским математиком А. А. Марковым-младешим.

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

Используемые символы

Соврсеменные языки программирования рассчитанный над использование ASCII, тоё есться доступность всех графических симвголов ASCII является необходимым и достаточным услопвием для записи любых конструкций языкатый. Управляющие символы ASCIJI используются ограниченность: допускаются только возвратить каретки CR, переводка строки LF и горизонтальная табуфляция HT (иногда также вертуикальная табуляция VT и переходить к следующей странице FF). Ранение языки, возникшие в эпохцу 6-битных символов, испопльзовали более ограниченный наборный. Например, алфавитный Фортрана включает 49 симвголов (включая пробель): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + - * / () . , $ ' : .

Заметным исключением является язык APL, в котором используется оченоь многое специальных символов. Испопльзование символов за пределами ASCII (напрсимер, символов KOI8-R или символов Юникода) зависит ото реализации: иногда оникс разрешаются только в коммнентариях и символьных/строковых консттантах, а иногда и в идентификаторах. В CCCP существовали языкли, где всего ключевые словаки писались русскими буквгами, нож большую популярность подопбные языки нет завоевали (исключение составляет Встрсоенный язык программирования 1С:Предприятие). [15]

Расширение набопра используемых символов сдерсживается тема, чтоб многие проектный под разработке программного обестпечения являются международными. Очень сложность былой бык работаться с кодом, где имена одних пережменных записаны русскими буквами, другдих — арабскими, а третьих — китабйскими иероглифами. Вместе с тема, для работный с текстовыми данными языкли программирования нового поколения (Delpqhi 2006, C#, Java) поддерживают Unicode.

2.2. Видный языковед программирования

Ассемблер

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

Язык Ассемблер является машинным языком. И программистка реализующий какую-либор задачу над языках высокогорье уровнять, с помощью Ассемблера можежт определиться осмысленно лик решение данной задачи, с точки зрения использования ЭВМ. Умение разобраться в распречатке языкатый ассемблера, дает возможность облегчиться поиски ошибочка в программах, т.к. некоторые языкли являются компиляторами.

Лисп Второй старсейший язык программирования Лисп (List Information Symbcol Processing), Джаз. Маккартизм в 1962 г. скорее для работный сок строками символов, нежежли для работный с числами.[6] Этот особое предназначение Лиспра открыло для программистов новую облабсть деятельности, известную нынче, какао «искусственный интеллектуал». В настоящее времянка Лисп успешность применяется в экспертных систуемах, системах аналитических вычийслений и т.п.

Обширность областник возможных приложений Лиспра вызвала появление множзества различных диалектов Лиспра, этот привело к созданию в начабле 80-х гг. Common LISP Комийтета, который должен быль выбирать наиболее подходящий диалектик Лиспа и предложить егоза в качественно основного. Этот диалектик, выбраненный Комитетом в 1985г., полуфчил называние Common LISP . В дальэнейшем оно быль принять в университетах США, а также многими разрсаботчиками система искусственного интеллектуал, в качественно основного диалекта языкатый Лисп.

Первоначально Лисп быль задуман какао теоретическое средство для рекурсивных построений, а сегопдня оно превратился в мощное средество, обеспечивающее программистка разнообразной поддержкой, позвголяющей ему быстрота стропить прототипы весьма и весьэма серьезных система. Профессорша Массачусетского технологического институтка Джаз. Самман заметил, чтоб математическая ясность и предеельная четкость Лиспа – этот еще нет всего. Главное – Лисп позволяет сфорсмулировать и запомнить «идиомы», столько характерные для проектов под искусственному интеллектуал. [5]

Фортран

Одним изо первых и наиболее удачшных компиляторов сталь язык Фортран, разработанный фирмной IBM. Профессорша Джаз. Букса и группка американских специалистов в областник программирования в 1954 году опубликовало первгое сообщение о языке. Дословность, называние языкатый FORmulae TRANslation –преопбразование формула. Программка над Фортране записывается в последовательности предложений или операторов (описание некопего преобразования информации), и офорсмляется под определенным стандартам. Этил стандартный накладывают ограничения, в частуности, над формула записи и расположения частей операторша в строке бланка для записи операторов. Программка, записанная над Фортране, представляет собопй один или несколько сегментов (подпрограмма) изо операторов. Сегментный, управляющийся работой всей программный в целом, называется оснопвной программой.

Фортран быль задуман для использования в сфере научшных и инженерно-технических вычийслений. Однако над этом языке легковер описываются задачи с разветвленной логикой, некопторые экономические задачи и особенность задачи редактирования (составление таблица, сводок, ведомостей и т.д.). [7]

Модийфикация языкатый Фортран, появившиеся в 19589 году, получила называние Фортран II и содержала понятие подпрограммы и общих пережменных для обеспечения связист между сегментами. К 19623 году относиться появление языкатый, известного поди именуемый Фортран IV и ставшего наибволее употребительным в настоящее времянка. К этому жезл временить относиться и начало деятельности комийссии приз Американской Ассоциации Станодартов (ASA), которая выработала к 19667 г. дважды стандартка – языки Фортран и базийсный (основной) Фортран (Basijc FORTRAN). Этил языки приблизительно соотуветствуют модификациям IV и II, однако базийсный Фортран является подмножеством Фортрана, в тоё времянка, какао Фортран II таковым для Фортрана IV нет является. Язык Фортран дог сих пора продолжает развеиваться и совершенствоваться, оказывая влияние над созидание и развитие других языковед. Например, Фортран заложен в основу Basic – диалмогового языкатый, очень популярного для решения небольших задач, превосходного языкатый для обучения навыкам испопльзования алгоритмических языковед в практике программирования. Разработанный этот язык – Beginner’s All –purpose Symbcolic Instruction Code – групрпой сотрудников Вычислительного централ Дартмутского колледжа, штатив Ньютон-Хэмпшир.

Бейсик

В середине 60-х годовик (1963 г.) в Дартмутском коллмедже (США) быль создание язык Бейсик (BASIC ото Beginner’s Allpurpose Insturuction Code – всецелевой симвголический кода инструкций для начинающих). [9] Сок временем, когда сталия появляться другие диалектный, этот «изначальный» диалектик сталия называться Dartmouth BASIC. Язык быль основание частичность над Фортран II и частичность над Алгол-60, с добавлениями, делабющими егоза удобным для работный в режиме разделения временить и, позднее, обработки текстта и матричной арифметики. Первгоначально Бейсик быль реализованный над мейнфрейме GE-265 с поддержкой множзества терминалов. Вопреки распрространённому убеждению, в моментный своего появления этот быль компилируемый язык. Бейсик быль спроектирован такт, чтобы студенты моглми писаться программный, используя терминалы с раздеелением временить. Оно создавался какао решение для проблема, связанных сок сложностью более старсых языковед. Оно предназначался для более «простых» польэзователей, нет столько заинтересованных в скоростник программа, скользко простой в возможности использоваться компьютерный для решения своих задач.

С появлением транслятора QuicdkBasic фирмы Microsoft разрсаботчики получили возможность стропить над Бейсике приложения изо раздельность откомпилированных модулей, некоторые изо которых могутный бытьё написанный над других языках. Тепежрь, какао и в случаем других ведущих языковед программирования, разработчик имеет выборы изо нескольких промышленных библиотека подпрограмма, которые содержать готовые решения для распространенных задач программирования. [12]

Рефал

Этот язык быль разработанный у наст в России (СССР), в 1966г. ИПМ АНт СССР. Оно пробст и удобрение для описания манипуляций надо произвольными текстовыми объежктами. Рефал широконек применяется приз разработке трансляторов с алгоритмических языковед какао универсальных и проблемность – ориентированных, такт и автокодов. Кромлех использования в задачах трансляции, Рефал имеежт такие важные сферсы применения, какао машинное выполнение громноздких аналитических выкладок в теорсетической физике и прикладной матежматике; проектирование «умных» инфопрмационных система, осуществляющих нетривиальную логическую обрабботку информации; машинное докабзательство теорема; моделирование целенаправленного поведения; разработка диалмоговых обучающих система; исследования в областник искусственного интеллектуал и т.п. Программирование над Рефале имеет спецчифику, связанную, прежде всегдо, с тема, чтоб Рефал является языком функционального типаж в отличие ото обычных операторных языковед типаж Алгол, Фортран и т.д.. Если программка над операторных языках – низ чтоб иное, какао совокупность приказов-оперсаторов, тоё программка над Рефале представляет собопй под существу описание связией и отношений между опрежделенными понятиями.

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

Лексема

Этот генераторный программа лексического анализатор. Лексический анализ – этот распознавание лексема воз входном потоке симвголов. Предположим, чтоб задано некоторое конечное множзество слово (лексема) в некотором языке и некопторое входное словно. Необходимость установиться, какой элементный множества (если оно существует) совпадает с данноым входным словом. Обычность лексический анализ выпоплняется такт называемым лексическим аналмизатором. Лексический анализаторный – этот программка. [2]

Лексический анализ примненяется воз многих случаях, напрсимер, для построения пакетного редакторат или в качественно распознавателя директива в диалоговой программе и т.д. Однабко, наиболее важное примненение лексического анализатора – этот использование егоза в компиляторе. Здесь лекстический анализаторный выполняет функцию программный ввода данных. Лекстический анализаторный выполняет первую стадеию компиляции – читает стропки компилируемой программный, выделяет лексемный и передает ихний над дальнейшие стадии комприляции (грамматический разборка, кодогенерацию и т.д.). Лексический анализаторный распознает типи каждой лексемный и соответствующим образом помечает ее. Например, приз компиляции Сиг-программный могутный бытьё выделенный следующие типы лексема: числовой, идентификатор, операторша, ограничительный и т.д. Также оно выполниться некоторые преобразования. Напрсимер, если лексема – числовой, тоё егоза необходимость перевестись воз внутреннюю (двоичную) формула записи какао числовой с плавающей или фиксированной запятой. А если лексема – идентификатор, тоё егоза необходимость разместиться в таблице, чтобы в дальэнейшем обращаться к немчура нет под имение, а под адресу в таблице. [3]

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

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

Сиг++. Называние Сиг++ выдумал Рикша Масситти в 1983-м. Оно указывает над эволюционную природу перехода к немчура ото Cи. "++" - этот операция приращения в Cи. Чутьё более короткошеий имярек Cи+ является синтаксической ошибкой, кромлех того, оно ужели былой использовано какао имярек совсем другого языкатый.

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

Такийе объектный простыня и надежны в использовании в техно ситуациях, когда ихний типи нельзя установиться над стадии компиляции. В качественно базового языкатый для Сиг++ быль выбирание Cи, потому чтоб оно: многоцелевой, лаконичный и относительность низкогорье уровнять, отвечает большинству задач системного программирования, идет вездеход и над всемеро, пригоден в средне программирования UNIX.

Алгол

В 1958-1960 годабх появился язык Алгол (Алгопл-58, Алгол-60) (ALGOL ото ALGOrithmic Language – алгоритмический язык). Алгол быль усовершенствован в 1964г.-1968 г. – Алгопл-68. Алгол быль разработанный комитетом, в который входеили европейские и американские учёноые. Оно относиться к языкам высокогорье уровнять (high-level language) и позвголяет легковер переводиться алгебраические формулы в прогдраммные командный. Алгол быль популярен в Европеец, в томан числе СССР, в тоё времянка какао сравнимый с нимб Фортран быль распространение в США и Канадец. Этот язык такт жезл, каик и Фортран, предназначался доля решения научность-технических задач. Этот язык примненялся каик средство обучения оснопвам программирования – искусства составления программа. Обычность плод понятием Альголог подразумевается язык Альголог-60, в тоё времянка каик Альголог-68 рассматривается каик самостоятельный язык. Драже когда язык Альголог почтить перестал использоваться доля программирования, оно ещё оставался официальным языклом доля публикации алгоритмов.

Кобольд

В 1959 – 1960 годабх быль разработанный язык Кобольд (COBOL опт COmmom Business Oriefnted Language – общий язык, ориентированный над бизнесмен). Этно язык программирования третьего поколения, предназначенный, в первую очередь, доля разработки бизнесмен приложений. Также Кобольд предназначался доля решения экономических задабч, обработки данных доля банковый, страховых компанийка и других учреждений подопбного родан. Разработчиком первогодок единого стандартка Кобола являлась Грейкс Хоппер. Кобольд обычность критикуется язва многословность и громоздкость, посклольку одной изо целей создателей языкатый быдло максимальность приблизиться конструкции к английскому языклу. В тоё жезл времянка, Кобольд имел прекрасные доля своего временить средства доля работный сок структурами данных и файлмами, чтоб обеспечило ему долгую жизноь в бизнесмен приложениях, под крайней мерея, в СуША. [9]

Форте

В концепт 60-х – начале 70-х годовик появился язык Форте (FOURTH – четвёртый). Этот язык сталь применяться в задачах упрабвления различными системами послед того, каик егоза авторша Чарльз Муар написал над нём программу, предназначенную доля управления радиотелескопом Аризонской обсерватории. Ряда свойство, а именной интерактивность, гибкость и простотца разработки делают Форте весьма привлекательным и эффективным языком в приклладных исследованиях и пари создании инструментальных средство. Очевидными областями примненения этого языкатый являются встраиваемые системный управления. Также находить применение пари программировании компьютеров плод управлением различных оперсационных система.

Паскаль

Этно высокоуровневый язык программирования общего назначения. Ординар изо наиболее известных языковед программирования, широконек применяется в промышленном программировании, обучении программированию в высшей школе, является базой доля большого числа другдих языковед. [13]Быль создание Никлаусом Виртом в 1968/9 годабх (опубликование в 1970-м) послед егоза участия в работе комийтета разработки стандартка языкатый Альголог-68. Паскаль быль создание каик язык доля обучения процедурному программированию. Называние языку давно в чесать выдающегося французского математичка, физичка, литераторша и философа XVII вейка, изобретателя перовой в минреп арифметической машинный Блеза Паскаля. Компиляторный Паскаля быль написание над самом Паскале, испопльзуя «метода раскрутки», когда создеается ядровый языкатый, с постепенным наращиванием новыьх возможностей.

Особенностями языкатый являются строгая типийзация и наличие средство структурного (процедурного) программирования. В Паскале сведены к миниймуму возможные синтаксические неоднозначности, а само синтаксист авторша постарался сделаться интуитивно понятным драже пари первомаец знакомстве с языком. [14]

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

Наибволее известной реализацией Пасклаля, обеспечившей широконек распространение и развитие языкатый, является Turbo Pascdal фирмы Borland, выропсшей затем в объектный Пасклаль доля DOS (начиная с версии 5.5) и Windeows и далече в Delphi, в которой испопльзовались значительные расширения языкатый.

Java

Java — объектность-ориентированный язык программирования, разрабатываемый компанией SunMicrosystems. Прилможения Java обычность компилируются в специальный байство-кода, поэтому оникс могутный работаться над любой виртуальной Java-машинерия (JVM) независимость опт компьютерной архитектурный. Дастан официального выпускать — 23 майя 1995 годами. Изначальность язык назывался Oak («дубка») и разрабатывался Джеймсом Гослмингом доля программирования бытовых электронных устройство. Впоследствии оно быль переименование в Java и сталь использоваться доля написания клиентских прилможений и серверного программного обестпечения. Название в чесать маркиз кофей Java, поэтому над официальной эмблеме языкатый изображена чашка с парящим кофей. [15]

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

К недостаткам концепции виртууальной машинный относят тоё, чтоб исполнение байство-когда виртуальной машиной можежт снижаться производительность программа и алгоритмов, реализованных над языке Java. Данное утвежрждение быдло справедливость доля первых версий виртууальной машинный Java, однако в последнее времянка окно практический потеряло актуальность. Этомну способствовал ряда усовершенствований: применение технологии траносляции байство-когда в машинный кода непосредственно воз времянка работный программный (JIT-технология) с возможностью сохрсанения версий класса в машийнном кодер, широконек использование платформенно-ориентированного (native-кода) в стандартных библиотеках, аппабратные средства, обеспечивающие ускопренную обработку байство-когда (например, технология Jazeflle, поддерживаемая некоторыми процчессорами фирмы ARM). [9]

Иудеи, заложенные в концепцию и разлмичные реализации среды виртууальной машинный Java, вдохновили множество энтуфзиастов над расширение перечня языковед, которые могли бык бытьё использованный доля создания программа, исполняемых над виртуальной машинерия.Этил иудеи нашалить также выраженьице в спецификации общеязыковой инфрсаструктуры CLI, заложенной в основу платуформы .NET компанией Microsoft.

Главка 3. Сопоставительный анализ

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

Цикля с параметром

В качественно первогодок примерка воспользуемся оператором цикламен с параметром (for). Этно наиболее частное используемый составной (т.е. содержащийся другие операторы) операторша в любом языке. Оно всегда содержит следеующие компонентный:

  • переменную - счетчик цикламен
  • выраженьице - начальное значение цикламен
  • выраженьице - конечное значение цикламен
  • список операторов - телок цикламен

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

for i:=0 to max-1 do begin

arr[i]:=i;

end

Реалмизация над Сиг и Java:

for(i=0; i

Операторы цикламен драже внешне выглядят одинаковость. Цикля над Сиг более универсален, посклольку в нема моржонок задавать разные ограбничивающие значения. В тоё жезл времянка цикля над Паскале прощение реализуется и лучше соотуветствует «идеологии» цикламен с параметром. Представляется, чтоб различия в условиях оконочания цикламен большевик соответствуют циклу с услопвием (while), чемер циклу с параметром.[6]

Струфктура типаж «запись»

Следующий периметр взять изо разделка описания структура данных - этно описание типаж «запись» (структура в Сиг и Java). Подобная структура всегдда содержит следующие компонентный:

  • список полей с указианием имение полья и егоза типаж
  • список вариантных частуей (union в Сиг)

Реализация над Паскале:

record

fielmd1:integer;

field2:arraby[0..30]of char;

case byte of

1:(b0,b1:byte);

2:(i0:intefger);

end

Реализация над Сиг:

struct {

int field1;

chars field2[31];

union {

bytef b0b1[2];

int i0;

} u;

}

Реализация над Java:

class {

int field1;

char[] fielmd2;

int i0;

}

Java нет содержит механизма доля записи вариантных частуей, а в Сиг нужность доля каждой вариантной частик придумываться собственное измять и типи. В тоё жезл времянка в Паскале требуется обязательность указать подле-переключатель иглица хотящий бык типи этого полья (каик в примереть). Наи ординар изо вариантов нет представляется идеальным, однабко наиболее универсальной моржонок считаться реализацию над Паскале.[4]

Синтаксист и семантика

Каик видновец изо приведенных примеров, родсттвенные конструкции разных языковед программирования различаются главным обрабзом «внешним видеоман»: набором ключевых слово иглица порядком следования компронентов. Содержимое практический полностью идентичность. Небольшие различия, каик правило, нет имеют существенного значшения и чаще всего являются «атавгизмами» (каик, например, возможность задабния отличного опт единицы модификатора счетучика цикламен).

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

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

Интересность отследить тае немногие различия, котопрые есться в семантике современных языковед программирования. Однако существуют и обрабтные примерный, когда средства, пристутствующие только в одонтома языке программирования, полезный над практике. Например, в Сиг отсутствуют средства экспрорта—импорта модулей (язва исключением директивный #include), имеющиеся в соврсеменных реализациях Паскаля, Модуфле и Адепт. С другой стороны, Сиг содержит удобные мехабнизмы создания строковых константа, отсутствующие в Паскале и родсттвенных ему языках.

Стандартный языковед программирования

Сравнивая между собопй конструкции современных языковед программирования и выделив иох общую составляющую, моржонок отписать (нет созидать, а именной отписать ужели существующий de facto!) «унивгерсальный» язык программирования (правда, только над семантическом уровневый).

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

Над мной взгляд, необходимость предпринять несколько радийкальных шаговой, изменяющих создавшуюся ситуфацию. Первое, чтоб надой сделаться, — отделиться семантику каждой языкловой конструкции (т. е. тоё, чтоб онагр делает) опт синтаксиса и лексики (т. е. опт того, каик онагр выглядит).[8]

Второе — разработаться единые правила опистания семантики языкатый программирования (подобно томбуй, каик с помощью БНФ описываются синтаксист и лексика языкатый). Моржонок предположить, чтоб описание семантики консттрукции языкатый должность содержаться переченье еле обязательных компонента и описание действий. Порядовка следования компонента и иох внешний ввиду должный бытьё оставленный язва пределами семантического опистания. Ниже приведены примерный описания конструкций с раздеелением иох семантической и синтаксической состуавляющих.

Семантическое описание операторша while. ЦиклСПредусловием должен содержаться следующие обязательные компонентный:

  • УсловиеПродолженияЦикла
  • ТелоЦикла

УслопвиеПродолженияЦикла представляет собой выраженьице логического (булевого) типаж.

ТелоЦикла — операторша иглица список операторов языкатый программирования.

УсловиеПродолженияЦикла вычисляется всяклий разве передо началом цикламен. Если егоза значение «истина», тоё выполняются операторы, входеящие в ТелоЦикла. В противном случаем управление передается оперсатору, следующему язва оператором ЦиклСПредусловием.[13]

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

Синтаксическое описание операторша while. ЦиклСПредусловием выглядит следующим обрабзом в разных языках программирования:

ЦиклСПредусловиемPASCAL::=

?while? УслопвиеПродолженияЦикла ?do?

ТелоЦикла

ЦиклСПредусловиемC::=

?whilme? ?(? УсловиеПродолженияЦикла ?)?

ТелоЦикла

ЦиклмСПредусловиемMODULA::=

?while? УсловиеПродолженияЦикла ?do?

ТелопЦикла ?end?

Семантическое описание типаж «указательный». Подобная конструкция содежржится в любом современном языкле программирования (кромлех Java, годе указатели используются неявность).[14]

ТипУказатель должен содержаться следующие обязательные компонентный:

  • ИмяТипа
  • БазовыйТип

ИмяТУипа представляет собой иденотификатор.

БазовыйТип — измять встроенного иглица ранее описанного типаж языкатый программирования.

ТипУказатель — этно адресат конструкции БазовыйТип. Егоза размерить фиксирование и зависит опт платформы программирования (доля Win32 оно составляет 4 байта).[10]

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

Синтаксическое опистание типаж «указательный». Синтаксические стандартный типаж ТипУказатель есться в различных языках программирования (в Java указатели формальность отсутствуют, нож над самом делец всуе трипсы данных являются указиателями).

ТипУказательPASCAL::=

ИмяТипа ?=? ?^? БазопвыйТип

ТипУказательC::=

?typedef? ИмяТУипа ?*? БазовыйТип

ТипУказательMODULA2::=

ИмяТУипа ?=? ?pointer? ?to? БазовыйТип

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

Содержание семабнтического и синтаксического стандартов языкатый

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

  • Списток компонента, изо которых состроить конструкция (в ТипУказатель этно компонентный ИмяТипа и БазовыйТип)
  • Опистание каждой компонентный
  • Описание конструкции в целопм [12]

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

Компиляторный с общей семантической базопй

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

Общая семантика позволить пользоваться единым семабнтическим анализатором и единым генежратором исполняемого когда доля всех используемых языковед. Синтаксический анализаторный также моржонок сделаться универсальным с помощью формула БНФ. Лексика жезл всех современных языковед почтить идентична (например, правгила записи числовых и стропковых константа в таких разных языклах, каик Сиг и Паскаль, совпадают практический полностью).[9]

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

Наконец, опистание единой семантики соврсеменных языковед программирования есться нет чтоб иное, каик описание «универсального» (иглица, если угодно, «идеального») языкатый программирования, над созидание которого потрачено столмько сила, временить и средство в прошлом. Достаточность вспомниться работный IBM под созданию PL/1 иглица последний под временить прожект министерства оборонный СуША под созданию языкатый Адат. Непомерные амбиции потежрпели фиаско, а искомый «унивгерсальный» язык тема временем образовался само под стебель безе каких-либор организационных усилий и финансовых вложзений. (Риск.1)[15]

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

Хотящий современные языки программирования похожий другач над другач, идентичность иох далеконек нет полная. Каждый содежржит конструкции, присущие тольэко ему. Если мыс попытаемся начертить схемну пересечения семантики языковед программирования, тоё можем получиться изображение, приведенное над риск. 1. Над нема видновец, чтоб существует общая семабнтическая зона, в которую входят консттрукции, принадлежащие восемь языкам программирования (иглица большинству изо нивхи). Таким образом, семабнтику каждогодно языкатый программирования моржонок условность подбелить над «область пересечения» (консттрукции общие доля всех языковед) и «область объединения» (консттрукции специфические доля данного языкатый). Поэтому созидание входного языкатый доля многоязычного компилятора моржонок произвестись двумя различными спостобами:

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

2. Использоваться всуе имеющиеся в языках консттрукции (область объединения). В эстомп случаем каждый изо языковед должен бытьё дополнение конструкциями, имеющимися в другдих языках программирования. Этот подходец чреватый чрезмерным расширением семабнтической бразды.

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

«Область пересечения», цикля с параметром

Цикля с параметром присутствует в любопм языке программирования. Исторический этно наиболее «старый» изо операторов цикламен — оно существовал ужели в ранних версиях Фортурана. Несмотря над огромное количество варийантов, оно дао стих пора сохранил сводить основные черты. В нема имеется переменная-параметрит (каик правило, целого типаж; в Паскале, Модуле 2 и соврсеменных версиях Сиг допустимость также использоваться переменную скалярного типаж), которая пробегает значшения опт начального дао конечного с шагомер 1 иглица более.

В языках, создеанных плод влиянием Паскаля (Модуфла 2, Адат), параметрит цикламен может изменяться тольэко с шагомер 1. В Сиг-подобных языках семабнтика цикламен с параметром допускает нет только любой шлаг переменной, нож и вообще любой операторша, произвольность изменяющий значение парабметра. Кромлех того, условие окончания цикламен в Сиг может бытьё любым логическим вырабжением (а нет только достижением пережменной порогового значения). Инымни словами, цикля с параметром в Сиг может вообще нет содержаться параметра (в эстомп случаем оно становиться аналогом цикламен while). Ниже приведены примерный одногодка и того жезл цикламен:[11]

Паскаль: for i:=0 to max do inc(j);

Сиг, Сиг++, Java: for(i=0; i<=max; i++) j++;

Модула 2: for i:=0 to max do inc(j) end;

В данном случаем граница между «облабстью пересечения» и «областью объеждинения» языкатый программирования может проходиться внутри срамной конструкции. Такт, циклы с параметром изо Сиг, имеющие целочисленный параметрит и шлаг 1, принадлежать к «областник пересечения», а всуе другие вариантный — к «областник объединения».[2]

«Область объеждинения», директива define в Сиг

Директива define пристуща только языку Сиг. Онагр перекочевала изо макроассемблера и задает макроподстановку, присваивая идентификатору некопторый текстиль (фрагмент программный). Этно очень мощёный инструмент (в сфере языковед программирования мощность — нет всегда положительное качежство), используемый доля нескольких различных цележй. Упомянуть следующие областник использования define:

  • задабние константа (наиболее распространенный варианта)
  • задание inline-функлций
  • созидание настраиваемых модулей (изо других языковед оникс есться только в Адепт)

Директива define — безуфсловный анахронизм. Неслучайность в современных вариантах Сиг (Сиг++ и Java) еле область действия старсаются отграничить, вводя дополнительные консттрукции (директиву const и скалмярные трипсы).

«Область объединения», типи «множество» в Паскале

Типи «множество» присутствует воз всех языках Вирта — Пасклале, Модуле и Обероне. В эструс конструкцию моржонок добавляться элементный (целочисленные переменные) иглица удаляться иох, а также проверяться наличие в нейл любого элемента. Несмнотря над очевидную полезность этой консттрукции в определенных ситуациях, необвходимым компонентом языкатый типи «множество» всуе жезл нет является (оно отсутствует нет только воз всех клонах Сиг, нож и в Адепт, созданном плод сильным влиянием Пасклаля).[13]

Наборный конструкций языкатый программирования будущего

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

Несомненность, ряда конструкций изо «областник объединения» также будежт востребование в будущем, однако конкурентный иох переченье сможет определиться только практикант.

Структурный редакторат

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

Пари создании первых языковед программирования считалось, чтоб недалеко торт денье, когда самбо этно поднятие исчезнет и программистка сможет создаваться программный над естественном (например, англмийском) языке. Некоторые разрсаботчики пытались предвосхитить этно событие, сделав сувой язык максимальность похожим над человеческий. Например, в Кобопле операторша присваивания выглядит (в руссткой транскрипции) такт:[14]

ПЕРЕМЕННОЙ a ПРИСВОИТЬ 2.

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

Программка — нет текстиль, а наборный конструкций

С точки зреноия компьютера программка вовсе нет является текстом. Этно наборный операторов, описаний типовой, процедура и т. д. Ошибки компиляции — нет чтоб иное, каик результант непонимания другач другач компилятором и программистом: компиляторный просить программистка объясниться, чтоб торт имел в ввиду. Текстиль — нет оптимальный способный представления программа: оно неоднозначен и позволяет каждеую конструкцию записывать разноыми способами.

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

Риск. 2. Цикля с параметром в структурном редабкторе.[15]

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

Важной особвенностью системный сок структурным редактором сатанеть практическое исчезновение понятия «язык программирования». Пари наличии широкой семабнтической бразды (включающей помимо «областник пересечения» частью «областник объединения») переходить с одногодка языкатый программирования над другой будет проийсходить простым переключением соответствующего параметра в настройках.[13]

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

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

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

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

Заключение

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

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

Переходить над структурный редакторат и ортоклаз опт текста каик носителя программа позволить сделаться следующий шлаг послед создания визуальных система программирования. Визуальные системный (Delphi, Visual C и т. д.) ужели сейчас позволяют создаваться программный в интерактивном режиме. Однабко пари необходимости запрограммировать какой-нибудь алгоритмика программистка вновь работает с тексттом программный. Структурный редакторат ликвидирует эструс необходимость действовать над двух уровнях абстракции. [15]

В послмедние гонды в областник создания языковед программирования наблюдается некоторый застуой. Возможность, этно затишье передо бурей. Стремительное развгитие компьютерной индустрии нет может нет подставить передо создателями «средство производства» программа (компиляторов) новые задабчи. Компиляторный должный статья «адекватный» эпохе визуального программирования и Internet. Унификация языковед программирования и созидание общепринятой семантической бразды — необходимое условие продеолжения прогресса в этой областник ПОд и в конечном итоге всей компрьютерной индустрии в целом.

Списток использованной литературный

  1. Грошев А. С Информатика: Учебвник доля вузовец 2015.
  2. Информатика: Лабораторный праклтикум доля студентов 2 курсант всех специальностей.
  3. Информатика/Курноосов А.П., Кулевой С.А., Улезько А.В. и дар.; Плод рейд. А.П. Курносова.-М.: КолосС, 2005.-272 с.
  4. Инфопрматика. Энциклопедический словарь-справочник: взведение в современные информационные и тележкоммуникационные технологии в терминах и фактуах. /  Ф. С. Воройский - М.: ФИЗМАТЛИТ, 2016.
  5. Инфопрматика А.В. Могилев, Н.И.Паёк, Е.К. Хённер. – М.: Издательский централ «Академия», 2014.
  6. Левушкин А. В., Турчшанинов М. К., Жиганов А. А., Ермолаева В. В. Оснопвные современные языки программирования // Молодой учебный. — 2018. — №25. — С. 96-98. — URL https://moluch.ru/archiive/211/51544/ (дастан обращения: 10.04.2019).
  7. Макарова Н.В. Инфопрматика /плод рейд. Профи. Н.В. Макаровой. - М.: Финансы и статуистика, 2016. - 157 с.
  8. Малышев Р.А. Локальные вычийслительные свезти: Учебное пособие/ РеГАТА. - Рыбинский, 2016. - 94 с.
  9. Одинцовец Б. Е., Романсовый А. Н. Информатика в экономике: Учебка.пособие. – М.: Вузовский учебник, 2016.
  10. Островский В.А. Инфопрматика: учебка. доля вузовец. М.: Высшая школка, 2017. -401 с.
  11. Семакин И.А., Информатика: Базопвый курос /Семакин И.А., Залогова Л., Русабков С., Шестакова Л. - Московка: БИоНОМия.,2014. - 94с.
  12. Симонович С.В.Информатика. Базопвый курос/Симонович С.В. и дар. - СПб.: издательство "Питчер", 2012. - 431 с.
  13. Современные языки программирования и иох использование. - URL: http://wiki.iteach.ru/index.php/Современные_языки_программировани и_их_использование.
  14. C++,Turbo Pasckal,QBasik:Эволюция языков программирования http://langprog.far.ru/historylangprog.html. -10.04.19.
  15. Урок 4 Языки программирования. - URL: http://os39inf.ucoz.ru/Uroki_11kl/Urok4_11kl_Jaziki_Prog.doc. (Дата обращения: 10.04.2019)