Формализованные языки программирования это

Формализованный язык, предназначенный для описания программ и алгоритмов решения задач на ЭВМ. Языки программирования являются искусственными. В них синтаксис и семантика строго определены. Поэтому они не допускают свободного толкования выражения, что характерно для естественного языка . Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня :

Язык высокого уровня [ high-level language ] – Язык программирования , средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора . К языкам высокого уровня относят Фортран , ПЛ/1 , Бейсик , Паскаль , Си , Ада и др.

Язык низкого уровня , [ low-level language ] – Язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код (см. ниже также “ машинный язык “, “ машинно-ориентированный язык “ и “ язык ассемблера “) .

Различают также следующие виды языков программирования:

Алгоритмический язык [ algorithmic language ] – Совокупность символов, соглашений и правил, используемых для однозначного описания алгоритмов и обычно являющаяся часть языка программирования ;

Неалгоритмический язык [ nonalgorithmic language ] – Язык программирования , тексты которого не содержат указаний на порядок выполнения операций и служат лишь исходным материалом для синтеза алгоритма решения задачи;

Формальный язык [ formal language ] –

Язык программирования , построенный по правилам некоторого логического исчисления или формальной грамматики [ formal grammar ], представляющей собой систему правил построения в заданном алфавите конечных знаковых последовательностей, множество которых образует формальный язык;

См. “ алгоритмический язык “;

Исходный язык [ source language ] – Язык программирования , на котором написана программа, в отличие от машинного языка , на котором программы выполняются компьютером. Исходные языки классифицируются на языки высокого уровня и языки низкого уровня .

Машинный ( абсолютный ) язык , язык ЭВМ [ computer ( machine ) language ] – Язык программирования , предназначенный для представления программ в форме, обеспечивающей возможность их выполнения техническими средствами;

Машинозависимый ( машинно-ориентированный ) язык , машинозависимый язык программирования [ computer-sensitive ( computer-oriented ) language ] – Язык программирования , учитывающий структуру и характеристики ЭВМ определенного типа или конкретной ЭВМ;

Машиннонезависимый язык [ machine-independent language ] – Язык программирования , структура и средства которого не связаны ни с какой конкретной ЭВМ и позволяют выполнять составленные на нем программы на любой ЭВМ, снабженной трансляторами (см. ниже) с этого языка;

Символический язык , язык символического кодирования [ symbolic language ] – Язык программирования , ориентированный на конкретные ЭВМ и основанный на кодировании машинных операций при помощи определенного набора символов;

Гибридный ( комбинированный ) язык [ hibrid language ] – Язык программирования , использующий также средства другого языка;

Графический язык [ graphic language ] – Язык, предназначенный для написания программ машинной графики и пользования ими.

Базовый язык [ base language ] –

Машинный язык , общий для семейства ЭВМ;

Язык программирования в СУБД с автономным языком .

Общий язык [ common language ] – Машинный язык , общий для группы ЭВМ и используемых ими внешних устройств;

Эталонный язык [ reference language ] – Язык, являющийся основой для всех его конкретных версий, являющихся вариантами адаптации эталонного языка к определенным условиям применения и назначения;

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

Декларативный ( непроцедурный ) язык [ declararative ( nonprocedural ) language ] – Язык программирования , который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог , QBE );

Императивный ( процедурный ) язык [ imperative language ] – Язык программирования , который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения;

Язык функционального программирования , функциональный язык [ functional language ] – Декларативный язык программирования, основанный на понятии функций , которые задают зависимость, но не определяют порядок вычислений.

Специализированный язык [ special language ] – Язык программирования , ориентированный на решение определенного круга задач;

Язык описания страниц [ PDL – Page Description Language ] – Специализированный язык , предназначенный для печатающих устройств. Предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript .

Автономный язык [ freestanding language ] – Специализированный язык высокого уровня , в замкнутых СУБД (“ СУБД с автономным языком “);

Язык конструирования интерактивных технологий – В СУБД – язык, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы;

Язык манипулирования данными , ЯМД [ DML – Data Manipulation Language ] – В СУБД – язык, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;

Язык обработки списков [ list language ] – Специализированный язык , предназначенный для описания процессов обработки данных, представленных в виде списков объектов ;

Язык описания данных [ DDL – Data Description Language ] – Язык, предназначенный для описания “концептуальной схемы” базы данных ;

Язык описания хранения данных [ DSDL – Data Storage Description Language ] – Язык, предназначенный для описания физической структуры ( схемы ) базы данных ;

Язык описания страниц [ page description language ] Система для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц.

Язык представления знаний [ KRL – Knowledge Representation Language ] – Декларативный или декларативно-процедурный язык , предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог );

Язык публикаций [ publication language ] – Язык, используемый для публикации алгоритмов и программ;

Язык спецификаций [ specification language ] – Декларативный язык для задания спецификаций программ ;

Проблемно-ориентированный язык [ problem-oriented language ] – Язык программирования , предназначенный для решения определенного класса задач (проблем);

Процедурный ( процедурно-ориентированный ) язык [ procedure-orinted language ] – Проблемно-ориентированный язык , который облегчает выражение процедуры , как точного алгоритма;

Язык реального времени [ real-time language ] – Язык, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада );

Язык управления пакетом [ batch control language ] – Набор команд , директив , квалификаторов и правил их использования для управления пакетной обработкой данных;

Язык управления заданиями [ job-control language ] – Язык, на котором записывается последовательность команд , управляющих выполнением задания . В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями преобразуемыми объектами являются целые программы и выходные потоки данных, обработанных этими программами.

Общесетевой командный язык [ CNCL – Common Network – Command language ] – Стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД ;

Системный язык [ system language ] – Язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;

Язык общего назначения , универсальный язык [ universal programming language ] – Язык программирования , ориентированный на решение задач практически из любой области и объединяющий на единой методической основе наиболее существенные свойства и средства современных машино- и проблемноориентированных языков программирования (например, язык ассемблера , ПЛ/1 и др.);

Язык ориентированный на пользователя [ user-oriented language ] – Слабоформализованный язык программирования , близкий к естественному языку ;

Читайте также:  Эксперимент с электронами и двумя щелями

Язык меню [ menu language ] – Язык диалога пользователя с системой , основанный на использовании меню .

Разработки и наименования языков программирования

Ада [ Ada ] – Язык программирования высокого уровня , ориентированный на применение в системах реального времени и предназначенный для автоматизации задач управления процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.) ЭВМ . Разработан по инициативе министерства обороны США в 1980-х гг. Назван в честь английского математика Ады Августы Байрон ( Лавлейс ), жившей в 1815-1851 гг.

Алгол [ ALGOL – ALGOrithmic Language ] – Язык программирования высокого уровня , ориентированный на описание алгоритмов решения вычислительных задач. Был создан в 1958 г. специалистами западно-европейских стран для научных исследований. Версия этого языка Алгол-60 была принята Международной конференцией в Париже (1960 г.) и широко использовалась на ЭВМ 2-го поколения. Версия Алгол-68 , разработанная группой специалистов Международной федерации по обработке информации ( ИФИП ) в 1968 г., получила статус международного универсального языка программирования, ориентированного на решение не только вычислительных, но и информационных задач. Хотя в настоящее время Алгол практически не используется, он послужил основой или оказал существенное влияние на разработку более современных языков, например, Ада , Паскаль и др.

Бейсик [ BASIC – Beginner’s All-purpose Symbolic Instruction Code ] – Язык программирования высокого уровня , разработанный в 1963 – 1964 гг. в Дартмутском колледже Томасом Куртом и Джоном Кемени . Первоначально предназначался для обучения программированию. Отличается простотой, легко усваивается начинающими программистами благодаря наличию упрощенных конструкций языка Фортран и встроенных математических функций, алгоритмов и операторов. Существует множество различных версий Бейсика, которые не полностью совместимы друг с другом. Некоторые реализации Бейсика включают средства обработки данных и наборов данных. Большинство версий Бейсика используют интерпретатор , который преобразует его компоненты в машинный код и позволяет запускать программы без промежуточной трансляции. Некоторые более совершенные версии Бейсика позволяют использовать для этой цели трансляторы . На IBM PC широко используются Quick Basic фирмы Microsoft , Turbo Basic фирмы Borland и Power Basic (усовершенствованная версия Turbo Basic, распространяемая фирмой Spectra Publishing ). В начале 1999 г. фирма Microsoft выпустила версию языка Visual Basic 6.0 ( VB 6.0), предназначенного для создания многокомпонентных программных приложений для систем уровня предприятий. Подробнее о нем см. [429].

Кобол [ COBOL – COmmon Buisiness-Oriented Language ] – Язык программирования высокого уровня , разработанный в конце 1950-х гг. ассоциацией КАДАСИЛ для решения коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических, информационных и других задач.

Лисп [ LISP – LISt Processing ] – Алгоритмический язык , разработанный в 1960 г. Дж. Маккарти и предназначенный для манипулирования перечнями элементов данных. Используется преимущественно в университетских лабораториях США для решения задач, связанных с искусственным интеллектом . В Европе для работ по искусственному интеллекту предпочитают использовать Пролог .

ЛОГО [ LOGO от греч. logos – слово ] – Язык программирования высокого уровня , разработан в Массачусетском технологическом институте в ориентировочно 1970 г. для целей обучения математическим понятиям. Используется также в школах и пользователями ПЭВМ при написании программ для создания чертежей на экране монитора и управления перьевым графопостроителем .

Паскаль [ PASCAL – акроним с французского – Program Applique a la Selection et la Compilation Automatique de la Litterature ] – Процедурно-ориентированный язык программирования высокого уровня , разработанный в конце 1960-х гг. Никлаусом Виртом , первоначально для обучения программированию в университетах. Назван в честь французского математика XVII века Блеза Паскаля . В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым в том числе для написания больших и сложных программ. Существует ряд версий языка (например, ETH Pascal , USD Pascal , Turbo Pascal ) и систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США). Подробнее о языках Пскаль и их развитии см. [653].

Пролог [ PROLOG – PROgramming in LOGic ] – Язык программирования высокого уровня декларативного типа (см. выше декларативное программирование ), предназначенный для разработки систем и программ искусственного интеллекта . Относится к категории языков пятого поколения. Был разработан в 1971 г. в университете г. Марсель (Франция), относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия Prolog 6.0. Подробнее см. [561].

Си [ C ] – Многоцелевой язык программирования высокого уровня , разработанный Денисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на миниЭВМ и ПЭВМ. Является базовым языком операционной системы Unix , однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си , в том числе – Turbo C (фирмы Borland ), Microsoft C и Quick C ( фирмы Microsoft ), а также Zortech C (фирмы Symantec ). Многие из указанных версий обеспечивают также работу с Си и Си++ (см. ниже).

Си++ [ C++ ] – Язык программирования высокого уровня , созданный Бьярном Страустрапом на базе языка Си . Является его расширенной версией, реализующей принципы объектно-ориентированного программирования . Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).

C# ( C Sharp ) – “ Си Шарп ”: объектно-ориентированный яык программирования , о разработке которого в 2000 г. объявила фирма Microsoft . По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки C и С++ для того, чтобы они могли более эффективно создавать Интернет-приложения. Указывается, что C # будет тесно интегрирован с языком XML . Подробнее см. – [600], а также на Web -сайте фирмы Microsoft ( http://msdn.microsoft.com ).

Фортран [ FORTRAN – FORmula TRANslation ] – Язык программирования высокого уровня , разработанный фирмой IBM в 1956 г. для описания алгоритмов решения вычислительных задач. Относится к категории процедурно-ориентированных языков . Наиболее распространенными версиями этого языка являются Фортран IV, Фортран 77 и Фортран 90. Используется на всех классах ЭВМ. Последняя его версия также применяется на ЭВМ с параллельной архитектурой .

AppleScript – Машинозависимый (ориентирован на работу с ПЭВМ типа Макинтош фиры Apple ) близкий к естественному английскому язык программирования, предназначенный для автоматизации повторяющихся задач, преимущественно связанных с процессами компьютерной графики (в том числе – обработки результатов сканирования, ввода изображений, цветоделения, составления каталогов, передачи печатных документов в World Wide Web и др.). Планировалась разработка версии этого языка для PowerPC. Подробнее о нем см. [198].

Clipper – Язык высокого уровня и система программирования , предназначенные для разработки программ для ПЭВМ, преимущественно – систем управления большими объемами данных (см. “ СУБД “ ). Владельцем и разработчиком языка и системы Clipper является фирма Nantucket (США). Начало работ по их созданию связано с разработкой компилятора для dBase (см. ниже) и относится к 1984 г. (год основания фирмы Nantucket Барри Ребеллом и Брайаном Расселом ). Первые программные продукты Clipper – ClipperWinter’84 (май 1985 г.), ClipperWinter’85 (январь 1986 г.), McMax (версия для ПК Macintosh – сентябрь 1986 г.) и ClipperSummer’87 (декабрь 1987 г.). Летом 1990 г. была выпущена версия языка Clipper 5.0 , получившая широкое распространение в России. Она реализует концепцию открытой архитектуры и представляет собой язык, компилятор и систему разработки программ для ПЭВМ, включающую набор команд и функций, препроцессор , компоновщик , набор утилит (в т.ч. отладчик и встроенную документацию) [173].

Читайте также:  Тайны гта сан андреас

Язык программирования высокого уровня , предназначенный для создания пакетов прикладных программ , связанных с манипулированием большими объемами данных (Xbase). Первая версия языка dBASE II вышла в свет в начале 1980-х гг., в августе 1994 г. была выпущена версия dBASE 5.0 для Windows (подробнее см. [79]);

Семейство программ для ПЭВМ, предназначенное для манипулирования большими объемами данных.

FoxPro – Объектно-ориентированный язык , предназначенный для создания пакетов прикладных программ , в том числе для современных операционных систем, например – версия этого языка FoxPro for Windows . Об одной из последних версий этого языка – Visual FoxPro 3.0 фирмы Microsoft см. в [84].

SGML ( Standardized General Markup Language ) – “ Стандартизованный обобщенный язык разметки ”. Разработка языка была вызвана необходимостью создания средств описания документов и правил их построения. Для задания структуры документа используются специальные метки – “ теги ”, которые отделяют друг от друга элементы документа и файлы определения типа документа ( Document Type Definition – DTD ), выполняющие функции “грамматики” и определяющие структуру и содержание каждого элемента в документе. Принят ISO в качестве стандарта в 80-е годы. Сложность этого языка помешала ему лечь в основу первой спецификации для Web – HTML , который стал производным от SGML [336].

html , html ( HyperText Markup Language ) – “ Язык разметки гипертекста ” разработан в исследовательском центре CERN в 1992 г. Он является производным от SGML (см. ниже). html устанавливает формат гипермедийных документов, в сети WWW . HTML-документы представляют собой ASCII -файлы, доступные для просмотра и редактирования в любом текстовом редакторе. Отличием от обычного текстового файла является наличие в HTML-документах специальных команд – тэгов , которые указывают правила форматирования документа [114, 141, 329, 336]. Полное описание html можно получить по сетевому адресу: .

ФОРМАЛИЗОВАННЫЙ ЯЗЫК

ФОРМАЛИЗОВАННЫЙ ЯЗЫК – искусственная знаковая система, предназначенная для представления некоторой теории. Формализованный язык отличается от естественных (национальных) языков человеческого общения и мышления, от искусственных языков типа Эсперанто, от «технических» языков науки, сочетающих средства определенной части естественного языка с соответствующей научной символикой (язык химии, язык обычной математики и др.), от алгоритмического языка типа обобщенного программирования и т.п. прежде всего тем, что его задача – служить средством фиксации (формализации) определенного логического содержания, позволяющего вводить отношение логического следования и понятие доказуемости (либо их аналоги). Исторически первым формализованным языком была силлогистика Аристотеля, реализованная с помощью стандартизованного фрагмента естественного (греческого) языка. Общую идею формализованного языка сформулировал Лейбниц (characteristica universalis), предусматривавший его расширение до «исчисления умозаключений» – calculus ratiocinator. В Новое время различные варианты формализованных языков разрабатывались на основе аналогии между логикой и алгеброй. Вехой здесь явились труды Моргана, Буля и их последователей, в особенности Шрёдера и Порецкого. Современные формализованные языки – в их наиболее распространенных формах – восходят к труду Фреге «Begriffsschrift» – «Запись в понятиях» (1879), от которого идет главная линия развития языка логики высказываний и (объемлющей ее) логики (многоместных) предикатов, а также применение этих логических языковых средств к задачам обоснования математики.

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

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

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

Формализованный язык может быть «чистой формой», т.е. не нести никакой внелогической информации; если же он ее несет, то становится прикладным формализованным языком, специфика которого – наличие постоянных предикатов и термов (дескрипций) – напр. арифметических, – отражающих свойства прикладной области. Для формализации теорий высокого уровня абстракции формализованный язык может по-разному видоизменяться, расширяться либо «надстраиваться»; пример: формализация классического математического анализа как арифметики второго порядка (т.е. с кванторами по предикатным переменным). В ряде случаев формализованный язык содержит логические структуры многих – даже бесконечно многих – порядков (такова, напр., «башня языков» А.А.Маркова, служащая формализации конструктивной математики, или интерпретация модальностей в виде иерархии «возможных миров»). Семантическая база формализованного языка логики может быть теоретико-множественной, алгебраической, вероятностной, теоретико-игровой и др. Возможны и такие ее «ослабления», которые лишь родственны вероятностной семантике – так возникает, напр., формализованный язык «расплывчатой логики» (в смысле Заде). Тогда язык приобретает специфическую прагматику, принимающую во внимание фактор носителя языка (дающего оценку «функции принадлежности» предмета объему данного понятия). Здесь проявляется крепнущая ныне тенденция учета в формализованных языках «человеческого фактора» – в том или ином его виде, что явно проявляется в некоторых формализованных языках логики квантовой механики. В другом направлении идет разработка формализованных языков, семантика которых предполагает отказ от экзистенциальных допущений либо те или иные онтологические предпосылки – о допустимости правил с бесконечным числом посылок, «многосортности» предметных областей, даже противоречивых, и т.д.

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

1. Черч А. Введение в математическую логику, т. 1. М., 1960;

2. Клини С.К. Введение в метаматематику. М., 1957;

3. Карри Х. Основания математической логики. М., 1969;

4. Фрейденталь Х. Язык логики. М., 1969;

5. Смирнова Е.Д. Формализованные языки и проблемы логической семантики. М., 1982.

Конец

Начало

Повторять

Начало

Псевдокоды

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

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

Читайте также:  Тип раздела первичный или логический

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

алгоритм алгоритм Евклида;

пока первое число не равно второму

если числа равны

то стоп все;

иначе определить большее из двух чисел;

заменить большее число на разность большего и меньшего чисел

конец;

взять первое число в качестве ответа

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

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

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

Язык программирования – это формализованный язык, который представляет собой совокупность алфавита, правил написания конструкций (синтаксис) и правил толкования конструкций (семантика).

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

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

Языки программирования
Низкого уровня Высокого уровня
Машинный Машинно-зависимые Машинно-независимые
Ассемблер Универсальные
Автокод Проблемно-ориентированные
Объектно-ориентированные
Командные языки баз данных

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

Универсальные языки высокого уровня обеспечивают создание различных программ (задач), например Алгол, Си, ПЛ/1 и т.д..

Проблемно-ориентированные языки создавались под какие-то конкретные классы задач, например, Фортран – научные расчеты, Кобол – экономические расчеты, Лисп и Пролог – искусственный интеллект и т.д.

Объектно-ориентированные языки четвертого поколения (4GL — forth-generation language) и программирование основаны на создании модели системы, как совокупности объектов и использует следующие базовые понятия: класс, объект, событие, свойства объекта, метод обработки. Первым языком программирования этой группы был – Симула-67. В настоящее время к этим языкам относятся – С++, Visual Basic, Java Script и динамический HTML и другие современные языки программирования.

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

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

Фирма Microsoft использует Visual Basic для расширения функций своих программных продуктов. Уже в пакете Microsoft Office для Windows 3-х пользователям и программистам предлагались диалекты Word Basic и Access Basic, а ныне в Microsoft Office предусмотрен универсальный язык Visual Basic for Applications (VBA — Visual Basic для приложений). Ранее этот язык использовался только в Excel 5.0. С помощью VBA можно создавать собственные программные модули, собственные интерфейсы для офисных приложений Word, Excel, Access.

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

Существует два типа программ-трансляторов, работающих с исходными текстами. Программа-компилятор (от слова compile — составлять, собирать) переводит исходный текст в машинный код и записывает его на диск в форме исполняемого (загрузочного) файла. После этого программа выполняется независимо от исходного текста. Раньше программы-компиляторы называли просто и точно — трансляторами (переводчиками).

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

Современное программирование существенно отличается от технологии разработки программ для старых ЭВМ. Среди относительно новых особенностей и направлений этой технологии:

Ø применение объектно-ориентированных языков;

Ø визуальное программирование (т. е. сборка экранной формы с помощью мыши из готовых «полуфабрикатов »-объектов);

Ø быстрая разработка приложений (RAD — Rapid Applications Development);

Ø программирование с использованием функций API Windows (Applications Programming Interface — интерфейс прикладного программирования);

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

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

Оцените статью
Добавить комментарий

Adblock
detector