ЯЗЫК ПРОГРАММИРОВАНИЯ [programming language]
Формализованный язык, предназначенный для описания программ и алгоритмов решения задач на ЭВМ. Языки программирования являются искусственными. В них синтаксис и семантика строго определены. Поэтому они не допускают свободного толкования выражения, что характерно для естественного языка. Языки программирования разделяются на две основные категории — языки высокого уровня и языки низкого уровня.
Язык высокого уровня [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] — универсальный язык программирования, относящийся к категории языков низкого уровня, структура которого определяется форматами команд, данными машинного языка и архитектурой ЭВМ. Используется программистами в тех случаях, когда невозможно применение языка высокого уровня или требуются эффективные программы в машинных кодах.
Декларативный (непроцедурный) язык [declarative (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-oriented language] — проблемно-ориентированный язык, облегчающий выражение процедуры как точного алгоритма.
Язык реального времени [real-time language] — язык, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада).
Язык управления пакетом [batch control language] — набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных.
Язык управления заданиями [job-control language] — язык, на котором записывается последовательность команд, управляющих выполнением задания. Предназначался для обучения программированию. Отличается простотой, легко усваивается начинающими программистами благодаря наличию упрощенных конструкций языка Фортран и встроенных математических функций, алгоритмов и операторов. Существует множество различных версий Бейсика, которые не полностью совместимы друг с другом. Некоторые реализации Бейсика включают средства обработки данных и наборов данных. Большинство версий Бейсика используют интерпретатор, который преобразует его компоненты в машинный код и позволяет запускать программы без промежуточной трансляции. Некоторые более совершенные версии Бейсика позволяют использовать для этой цели трансляторы. На IBM PC широко используются Quick Basic фирмы Microsoft, Turbo Basic фирмы Borland и Power Basic (усовершенствованная версия Turbo Basic, распространяемая фирмой Spectra Publishing). В начале 1999 г. фирма Microsoft выпустила версию языка Visual Basic 6.0 (VB 6.0), предназначенного для создания многокомпонентных программных приложений для систем уровня предприятий.
Кобол [COBOL — COmmon Business-Oriented Language] — язык программирования высокого уровня, разработанный в конце 1950-х гг. ассоциацией КАДАСИЛ для решения коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических, информационных и других задач.
Лисп [LISP — LISt Processing] — алгоритмический язык, разработанный в 1960 г. Дж. Маккарти и предназначенный для манипулирования перечнями элементов данных. Используется преимущественно в университетских лабораториях США для решения задач, связанных с искусственным интеллектом. В Европе для работ по искусственному интеллекту предпочитают использовать Пролог.
ЛОГО [LOGO or греч. logos — слово] — язык программирования высокого уровня, разработан в Массачусетском технологическом институте ориентировочно в 1970 г. для целей обучения математическим понятиям. Используется также в школах и пользователями ПЭВМ при написании программ для создания чертежей на экране монитора и управления перьевым графопостроителем.
Паскаль [PASCAL — акроним с французского — Program Applique a la Selection et la Compilation Automatique de la Litterature] — процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом первоначально для обучения программированию в университетах. Назван в честь французского математика XVII в. Блеза Паскаля. В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие доработки позволили сделать его хорошим универсальным языком, широко используемым в том числе для написания больших и сложных программ. Существует ряд систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США).
Пролог [PROLOG — PROgramming in LOGic] — язык программирования высокого уровня декларативного типа, предназначенный для разработки систем и программ искусственного интеллекта. Относится к категории языков пятого поколения. Был разработан в 1971 г. в университете г. Марселя (Франция), относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия Prolog 6.
Си [С] — многоцелевой язык программирования высокого уровня, разработанный Денисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на мини-ЭВМ и ПЭВМ. Является базовым языком операционной системы Unix, однако применяется и вне этой системы для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе Turbo С (фирмы Borland), Microsoft С и Quick С (фирмы Microsoft), а также Zortech С (фирмы Symantec). Многие из указанных версий обеспечивают также работу с Си и Си++ .
Си++ [C++] — язык программирования высокого уровня, созданный Бьярном Страустрапом на базе языка Си. Является его расширенной версией, реализующей принципы объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).
С# (С Sharp) — "Си Шарп" — объектно-ориентированный язык программирования, о разработке которого в 2000 г. объявила фирма Microsoft. По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки С и C++, для того, чтобы они могли более эффективно создавать Интернет-приложения. Указывается, что С# будет тесно интегрирован с языком XML.
Фортран [FORTRAN — FORmula TRANslation] — язык программирования высокого уровня, разработанный фирмой IBM в 1956 г. для описания алгоритмов решения вычислительных задач. Относится к категории процедурно-ориентированных языков. Наиболее распространенными версиями этого языка являются Фортран IV, Фортран 77 и Фортран 90. Используется на всех классах ЭВМ. Последняя его версия также применяется на ЭВМ с параллельной архитектурой.
AppleScript — машинно зависимый (ориентирован на работу с ПЭВМ типа Macintosh фиры Apple), близкий к естественному английскому язык программирования, предназначенный для автоматизации повторяющихся задач, преимущественно связанных с процессами компьютерной графики (в том числе обработки результатов сканирования, ввода изображений, цветоделения, составления каталогов, передачи печатных документов в World Wide Web и др.). Планировалась разработка версии этого языка для PowerPC.
Clipper — язык высокого уровня и система программирования, предназначенные для разработки программ для ПЭВМ, преимущественно систем управления большими объемами данных. Владельцем и разработчиком языка и системы Clipper является фирма Nantucket (США). Начало работ по их созданию связано с разработкой компилятора для dBase и относится к 1984 г. (год основания фирмы Nantucket Барри Ребеллом и Брайаном Расселом). Первые программные продукты Clipper — ClipperWinter'84 (май 1985 г.), ClipperWinter'85 (январь 1986 г.), МсМах (версия для ПК Macintosh — сентябрь 1986 г.) и ClipperSummer'87 (декабрь 1987 г.). Летом 1990 г. была выпущена версия языка Clipper 5.0, получившая широкое распространение в России. Она реализует концепцию открытой архитектуры и представляет собой язык, компилятор и систему разработки программ для ПЭВМ, включающую набор команд и функций, препроцессор, компоновщик, набор утилит (в том числе отладчик и встроенную документацию).
dBASE
-
Язык программирования высокого уровня, предназначенный для создания пакетов прикладных программ, связанных с манипулированием большими объемами данных (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-документах специальных команд — тэгов, которые указывают правила форматирования документа. Полное описание HTML можно получить по сетевому адресу: <http://www. access. digex.net/"werbach/barebone.html>.
Версии языка HTML:
-
HTML 2.0 — стандарт был утвержден в ноябре 1994 г. организацией IETF (Internet Engineering Task Force). В нем были расширены возможности предыдущей версии языка, и он получил широкое распространение как у профессионалов, так и у любителей.
-
HTML 3.0 — проект версии языка был опубликован в марте 1995 г. В нем были произведены радикальные изменения предыдущих версий: включены дополнительные возможности, включая таблицы, математические выражения и т. д. Это стало причиной того, что он не принят в качестве официальной спецификации и был заменен спецификацией HTML 3.2.
-
HTML 3.2 (кодовое наименование проекта "Wilbur") — был опубликован и начал широко использоваться с мая 1996 г., получил официальное утверждение и популярность из-за совместимости с HTML 2.0 1997 г.
-
HTML 4.0 (кодовое наименование проекта "Cougar") — последняя версия языка. В нем реализованы многие распространенные концепции Web-дизайна и приняты некоторые средства HTML 3.2. Самым значительным отличием HTML 4.0 от предыдущих версий является кодировка Unicode, тэг "OBJECT", позволяющий работать с мультимедиа (с видеоклипами и звуком) и др.
-
DHTML (Dynamic HTML) — динамическая HTML — развитие языка HTML для создания движущихся, находящихся в динамике, эффектов на Web-страницах.
-
XML (Extensible Markup Language) — расширяемый язык разметки. Предложен WWW Consortium (W3C) (консорциум ориентированных языков) в 1996 г. Входит в подмножество SGML. Возник в результате необходимости создать более обобщенный язык разметки без соблюдения сложного и громоздкого для использования в Интернете стандарта SGML. Хотя XML и требует формально определять язык разметки, стадия проверки корректности стала не обязательной: наличие определений типов документов (DTD — Document Type Definition) не требуется, хотя и допускается. Кроме того, в XML используется лишь некоторое подмножество правил SGML, что облегчает его использование. XML, подобно SGML, является метаязыком и содержит правила, по которым должно определяться множество тэгов, допустимых в документе. Пакет данных, описанный на
XML, называют XML-документом.
Java — объектно-ориентированный язык интерпретирующего типа, разработанный фирмой Sun Microsystems в 1994 г. Он во многом сходен с языком C++ и нашел широкое применение для написания разного рода программных продуктов (приложений), ориентированных на работу в сетевых системах типа "клиент-сервер" и "файл-сервер" под управлением современных операционных систем (Windows, OS/2 и др.). Язык рассчитан на передачу по Интернету текстов программ, которые на всех компьютерах должны выполняться одинаковым образом. Основное достоинство, привлекшее к этому языку специалистов, заключается в предоставляемой им возможности разработки платформо-независимых программ. Считается, что своим успехом этот язык обязан в первую очередь фирме Netscape Communication, которая лицензировала его интерпретатор в свой самый популярный в мире в те годы браузер Web-страниц (Navigator 2.0). Общими характеристиками языка Java являются: его простота, значительный объем библиотеки подпрограмм, возможность распространения на любой тип ЭВМ, независимость от ее архитектуры, высокая защищенность создаваемых программ, динамичность языка, обеспечивающая гибкое введение изменений в программы и др. В настоящее время язык Java лицензировали такие фирмы, как IBM, Microsoft, Borland, Symantec, Micromedia и др. В феврале 1997 г. фирма JavaSoft выпустила новую версию усовершенствованного инструментального пакета разработки программ на языке Java — JDK 1.1. (Java Development Kit). Он облегчает работу по составлению программ, поддерживает средства работы с национальными кодировками и имеет улучшенный оконный интерфейс.
Occam — язык высокого уровня, предназначенный для выполнения параллельного программирования и создания транспьютеров. Является результатом совместной разработки фирмы INMOS (Великобритания) и Оксфордского университета (Дэвид Мэй). Концепция Occam базируется на теории связанных последовательных процессов, созданной профессором Оксфордского университета С. Хора. Свое название получил в честь английского философа XIV в. Уильяма Оккама, поскольку в основе разработки языка был использован провозглашенный им принцип: "Сущность не должна превышать необходимость" ("бритва Оккама"). В соответствии с упомянутым принципом из двух одинаково эффективных вариантов решений принимается наиболее простое. Язык Occam используется в транспьютерах первых и всех последующих выпусков.
PostScript — объектно-ориентированный язык, разработанный фирмой Adobe Systems (США). Является одним из основных стандартов для печати и передачи документов, работает с изображениями, включая шрифты. Поэтому относится также к классу специализированных языков описания страниц. Представляет собой набор команд по формированию сложных геометрических фигур из коллекции простейших заготовок (круги, прямоугольники, прямые и кривые линии и т. д.). Шрифты и чертежи, выполненные с использованием векторной графики языка PostScript, могут масштабироваться без потери качества их печати или отображения на экране монитора. Используется для управления лазерными принтерами при печати документов и другими устройствами вывода данных.
SQL (Structured Query Language) — язык структурированных запросов — предназначен для обеспечения доступа к реляционным базам данных. Создан корпорацией IBM. Большинство файловых серверов и многие СУБД используют SQL в качестве стандартного средства доступа к данным из приложений-клиентов.
OQL (Object Query Language) — объектный язык запросов — расширенная версия языка SQL, дополненная объектными свойствами, средствами описания типов данных и итераций с объектами в базах данных.
ТеХ — язык, разработанный фирмой Donald Knuth еще в 1980 г. Он предназначен для обеспечения высококачественной печати. Особое внимание в нем уделяется возможности кодировки математических знаков с использованием ASCII для выдачи, обработки и хранения их на ЭВМ. До настоящего времени он считается незаменимым дополнением других языков (например, PostScript) при подготовке материалов по математике и смежным специальностям.
UML (Unified Modelling Language) — унифицированный язык моделирования — язык для спецификации, просмотра и документирования элементов программных систем, предназначенный для описания бизнес-объекта как компонента прикладной системы.
VRML (Virtual Reality Modelling Language) — язык моделирования виртуальной реальности (сленговый термин — вермел) — предназначен для унификации и упрощения представления трехмерной и подвижной графики, в том числе синхронизации изображения и звука. VRML рассматривается разработчиками как язык хотя и родственный, но альтернативный по отношению к HTML и взаимодействующий с ним. Впервые идея языка была предложена Марком Песке (Mark Pesce) в 1993 г., а его первая спецификация (VRML 1.0) была подготовлена на основе формата Open Inventor фирмы SGI и представлена на второй конференции WWW в октябре 1994 г. в Женеве. Главной задачей было дальнейшее усовершенствование интерактивных интерфейсов в целях лучшего их восприятия человеком. Во второй версии, в разработке которой приняли участие и другие фирмы (например, Sony Research, Mitra и др.), его интерактивные возможности были расширены. В частности, VRML 2.0 стал поддерживать анимацию и звуковые эффекты, а также взаимодействие с Java и JavaScript. В августе 1996 г. был принят его стандарт, а в декабре 1997 г. VRML 2.0 был официально заменен на VRML 97, называемый также VRML Technical Symposium. Новый стандарт I SO/I EC 14772 построен на основе спецификаций VRML 2.0 с некоторыми поправками и дополнениями. В настоящее время ведется разработка очередной версии — VRML 2000. Стандарт VRML и описание языка можно получить по сетевым адресам: <http:/www.virt-park.com/theme/vrml>, <http:/www.vrml.org>.
DSML (Directory Services Markup Language) — язык разметки службы каталогов — предназначен для поддержки служб администрации сетей, работающих с каталогами. Специализированные каталоги позволяют эффективно хранить сведения об абонентах сети, необходимых им сервисных услугах, а также сетевых ресурсах и другие данные, сопоставление которых обеспечивает возможность администраторам сети оптимизировать предоставление абонентам необходимых им услуг в реальном масштабе времени. DSML был предложен в 1999 г. рабочей группой (DSML Working Group), представленной фирмами IBM, Microsoft, Novell, Sun/Netscape, Oracle и др. для создания унифицированного формата разработки таких каталогов, их публикации и обмена их содержимым.
Достарыңызбен бөлісу: |