Общая терминология программирования
Министерство образования Российской Федерации
Донской Государственный Технический Университет
кафедра "Иностранные языки"
_______________________________________________________
Доклад
«Общая терминология программирования»
Выполнил |
студент Груздев В.В. |
г. Ростов-на-Дону
2002 г.
Содержание
TOC \o "1-3" \h \z \u 1. ОСНОВЫ ИНФОРМАЦИОННОЙ ТЕХНОЛОГИИ.. \h 3
1.1 Данные, информация, знания, логика. \h 3
1.2 Информационные ресурсы, теория информации, информатика. \h 7
3 ЯЗЫКИ ПРОГРАММИРОВАНИЯ.. \h 17
4 СВЯЗАННЫЕ С ПРОГРАММИРОВАНИЕМ ТЕРМИНЫ.. \h 28
5 ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ЗАДАЧ ПРОГРАММИРОВАНИЯ.. \h 30
1. ОСНОВЫ ИНФОРМАЦИОННОЙ ТЕХНОЛОГИИ
1.1 Данные, информация, знания, логика
ДАННЫЕ [data, information]
Сведения, факты, показатели, выраженные как в числовой, так и в любой другой форме. Указанный в скобках англоязычный эквивалент термина показывает, что он весьма часто рассматривается как синоним термина "информация". Так, словосочетание "data system" и производные от него могут соответствовать одному из совсем не однозначных, хотя и связанных между собой понятий — "система данных" и "информационная система". Аналогичное явление прослеживается при русскоязычном использовании этого термина. Например, в одном из изданий "Словаря терминов по информатике" данные трактуются как "информация, представляющая собой сведения"), а в ГОСТ 15971—84 — как "информация, представленная на материальных носителях".
В целях смыслового разделения понятий "информация" и "данные" Ассоциация стандартов Франции (АФНОР) дает следующее определение: "Данные — факт, понятие или инструкции, представленные в условной форме, удобной для пересылки, интерпретации и обработки человеком или автоматизированными средствами".
Согласно другому определению этого термина: "Данные — некоторый факт, то, на чем основан вывод или любая интеллектуальная система". Компонентами данных являются цифры и символы естественного языка или их кодированное представление в виде строки двоичных битов.
ИНФОРМАЦИЯ [Information от лат. Informatio — разъяснение, осведомление]
Данный термин и отражаемое им понятие являются сегодня одними из самых распространенных. Сказанное относится к их использованию как на бытовом, так и профессиональном уровнях.
Существует множество различных определений этого понятия, например, такие:
"Информация — содержание какого-либо сообщения, сведения о чем-либо, рассматриваемые в аспекте их передачи в пространстве и времени...".
"Информация — сведения, подлежащие передаче".
"Информация — это значение, вкладываемое человеком в данные на основании известных соглашений, используемых для их представления".
"Информация — содержание, значение данных, которое видят в них люди. Обычно данные состоят из фактов, которые ставятся "информацией" в определенном контексте и понятны людям".
Следует упомянуть здесь также классическое определение К. Шеннона, в соответствии с которым информация — это то, что сокращает степень неопределенности (у Шеннона — энтропии) у ее адресата о каком-либо объекте (в том числе явлении, передаваемом сигнале и т. п.). Другими словами, по Шеннону, информация — это то, что увеличивает степень знания ее адресатом интересующих его объектов окружающего мира. В указанном контексте количество информации можно даже рассчитать, например, по увеличению вероятности успешного решения поставленной задачи.
Список определений можно продолжить и дальше. С чем же связано различное представление понятия "информация"разными его пользователями, включая профессионалов?
Во-первых, его сложной и неоднозначной сущностью, которая к тому же имеет тенденцию достаточно быстро изменяться в ходе научно-технического прогресса. Например, в 1992 г. в журнале НТИ в статье одного уважаемого автора достаточно убедительно доказывался тезис о том, что информация отнюдь не всегда повышает вероятность успешного решения некоторых прикладных задач.
Во-вторых, с тем, что цитируемые и другие определения этого понятия вычленяют только те его признаки, которые служат достижению конкретных целей или соответствуют контексту документов, в которых они опубликованы. Так, наука кибернетика, расширенно толкуя понятие "информация", вывела его за пределы человеческой речи и других форм коммуникаций между людьми, связав его с целенаправленными системами любой природы — биологической (биотоки в организмах, связи в гинетических механизмах и т. п.), технической (сигналы в электрических сетях) и социальной (движение человеческих знаний в общественных системах).
Мы остановимся только на тех признаках понятия "информация", которые необходимы большинству наших читателей, а также тем или иным образом преимущественно связаны с библиотечной и информационной сферами деятельности.
Кратко эти признаки можно сформулировать следующим образом: "Информация — это сведения или данные, объективно отражающие различные стороны и элементы окружающего мира и деятельности человека на определенном этапе развития общества, представляющие для него какой-либо интерес и материализованные в форме, удобной для использования, передачи, хранения и/или обработки (преобразования) человеком или автоматизированными средствами".
Если на бытовом уровне смешение понятий "данные" и "информация" вполне допустимо, то для профессионалов это может привести и приводит к серьезным последствиям.
Чтобы стать информацией, данные должны правильно отражать объекты описания, в противном случае мы будем иметь дело с дезинформацией (англ. — false information, misleading information). Сама по себе "правильность отражения действительности" в соответствии с теорией познания всегда носит условный характер, поскольку связана с уровнем развития знаний на данном этапе развития общества или отдельных его социальных групп и индивидуумов. Так, состав и точность данных, которыми владеют или которые необходимы различным организациям и лицам об одном и том же объекте, будут существенно различаться в зависимости от образовательного, возрастного, социального статусов субъекта информирования, а также целей их использования (например, для повышения общей эрудиции или для решения научных, технических, производственных, коммерческих и других задач). В указанном плане данные для одного субъекта представляющиеся вполне точными, для другого могут оказаться грубой "дезой".
Чтобы стать информацией, данные должны представлять для субъекта информирования определенный интерес и новизну. Последнее означает, что они должны быть для него связаны с необходимостью решения каких-либо практических или других задач и сокращать "степень неопределенности" об объекте интереса (вспомним определение К. Шеннона). Информация, помимо того, что она адресно прибавляет знания об интересующем объекте, должна доставляться своевременно. Например, сообщение о том, что "сегодня в городе проливной дождь, гололед (или другие напасти)", полученное нами после того, как мы уже вышли из дома и промокли или забуксовали на дороге, информацией не является, как не является информацией и сообщение о погоде, скажем, в Чили или деревне Гадюкино, если там не живут наши близкие родственники и мы не собираемся туда ехать. Для нас эти данные являются тем, что в информатике принято называть "информационным шумом". Однако для кого-то в зоне действия средств массовой информации (кто еще не вышел на улицу или живет в упомянутых местах) эти же сведения — информация.
"Информационным шумом" являются также сообщения и данные, не представляющие новизны для субъекта информирования (другими словами, этими данными он уже владеет). Вспомним в этой связи часто повторяющуюся и вызывающую только раздражение рекламу даже нужных нам товаров и услуг!
Приведенные примеры, носящие откровенно бытовой характер, могут быть заменены другими из любой сферы деятельности человека. Смысл их от этого не изменится: данные, переданные не по назначению, не своевременно или не представляющие новизну, являются информационным шумом.
Понятие "информационный шум" может быть также распространено на данные, "не удобные" для "использования, передачи, хранения и/или обработки", поскольку и в этом случае они приводят к бесполезным, а возможно, и вредным затратам материальных, временных и других ресурсов.
Подводя итог сказанному, можно существенно сократить определение понятия информации: "Информация — это данные, необходимые или полезные тому, кому они передаются".
Широкоупотребительными являются случаи применения сочетаний термина "информация" с различными прилагательными, когда:
1. Сведения или данные, полученные в процессе какого-либо вида деятельности, отражают результаты этого вида деятельности или имеют отношение к ней и предназначены для справочно-информационного обслуживания и/или информационного обеспечения заинтересованных пользователей, например, научно-техническая информация [scientific-technical information],юридическая информация [juridical information], патентная информация [patent information] и т. п.
2. Сведения или данные имеют определенное назначение, например: справочная информация [reference information] — сведения или данные для выдачи справок о чем то;
сигнальная информация [alert information, current awareness information] — информация, предназначенная для быстрого предварительного оповещения.
3. Словарная статья определяет характер, принадлежность, форму или вид дан ных, используемых в информационном процессе, например:
априорная информация [aprior information] и апостериорная информация [aposterior information] — соответственно данные, имевшиеся до проведения какого-либо опыта или другого действия, и сведения, полученные после его выполнения;
коммерческая информация [commercial information] — данные, сведения и содержащие их документы, являющиеся объектом продажи их собственником; личная информация [private information] — сведения (данные) о гражданах и организациях, затрагивающие их интересы и запрещенные для распространения без их согласия;
библиографическая информация [bibliographic information] — библиографические данные, описания и их перечни;
графическая информация [graphical (pictorial, image, pattern) information] — сведения или данные, представленные в виде схем, эскизов, изображений, графиков, диаграмм, символов;
ретроспективная информация [retrospective information] — сведения, содержащиеся в накопленных более чем за два года массивах данных или полученные в результате поиска в этих массивах (так называемого ретроспективного поиска).
4. Словарная статья характеризует средства закрепления, отображения и/или передачи данных, например:
документальная информация [documentary information] — сведения, закрепленные на каком-либо материальном носителе; содержание документа или текста;
устная информация [oral information] — содержание устного сообщения и т. п.
ЗНАНИЯ [knowledge]
Совокупность сведений (данных или программ), отражающих знания человека — специалиста (эксперта) в определенной предметной области — и предназначенных для хранения в базах знаний. Знания отражают множество возможных ситуаций, связанных с состоянием и конкретной реализацией объектов определенного типа, способы перехода от одного описания объекта к другому. Для знаний характерны внутренняя интерпретируемость, структурированность, связанность и активность. Условно можно записать, что "знания = факты + убеждения + правила" .
ЛОГИКА [logic]
Наука о законах и формах мышления, методах познания и условиях определения истинности знаний и суждений.
Нечеткая логика [fuzzy logic] — (в математике и вычислительных системах) форма представления знаний или данных, связанных с описанием различных объектов понятиями вида "тяжелый", "громкий", "горячий" и т. п., имеющими неточные значения. Более строгое определение значения указанных понятий возможно только с привлечением ряда дополнительных сведений или данных, входящих в нечеткие множества и составляющих перечни дополнительных данных или условий. Примером может служить определение: "для кого и при каких условиях объект может быть отнесен к классу тяжелых" (мужчины или женщины, их вес, возраст, вес груза и т. п.). Центральным понятием нечеткой логики является понятие "вероятность члена множества", которая определяет степень правомерности отнесения данного члена к указанному множеству. Например, для члена нечеткого множества, (вносящего предметы к тяжелым, вес 20 кг может иметь такое значение с вероятностью 90% для миниатюрных женщин и, скажем, только 20% для мужчин.
Нечеткая логика широко используется в различного рода экспертных системах для автоматизированного принятия решений, близких к человеческим, на основе адекватного реагирования на сигналы, поступающие от связанных .с ними, датчиков, а также команды с пульта правления
1.2 Информационные ресурсы, теория информации, информатика
ИНФОРМАЦИОННЫЕ РЕСУРСЫ (ИР) [information resources]
В общем случае под ИР понимается совокупность сведений, получаемых и накапливаемых в процессе развития науки и практической деятельности людей для их многоцелевого использования в общественном производстве и управлении. ИР отражают естественные процессы и явления, зафиксированные в результате научных исследований и разработок или других видов целенаправленной деятельности в различного рода документах (например, отчетах по НИР, патентах, проектно-конструкторской документации, массивах данных и т. п.), понятиях и суждениях, а также более сложных моделях действительности.
Данный термин начал широко использоваться в конце 70-х — начале 80-х гг. в результате осознания растущей зависимости промышленно развитых стран, отдельных организаций и фирм от источников информации (технической, политической, военной и т. д.), а также от уровня развития и использования средств передачи и переработки информации. С ним связаны термины: национальные информационные ресурсы (в том числе государственные и негосударственные информационные ресурсы), информационные ресурсы территориально-административных образований, фирм (организаций), их подразделений и т. п.
В современном обществе ИР относятся к материальным и наиболее важным видам ресурсов, определяющих экономическую, политическую и/или военную мощь их владельца. В подтверждение этого тезиса можно привести ставший классическим пример с Японией: страна, практически лишенная природных ресурсов и обладающая весьма скромными людскими ресурсами, является крупнейшим в мире производителем и экспортером не только изделий микроэлектроники, но и такой материалоемкой продукции, как автомобили и супертанкеры.
Отличием ИР от других материальных видов ресурсов (например, полезных ископаемых) является их воспроизводимость. Как и другие виды ресурсов, ИР являются объектами импорта-экспорта, а также конкуренции, политической и экономической экспансии. Следует отметить, что границы понятия ИР в настоящее время четко не установлены. Так, некоторые ученые включают в его толкование также степень профессиональной подготовки общества или его части, а также способность воспроизводить и использовать ИР. Другие ограничивают ИР только совокупностью зафиксированных в документах и данных сведений, "представляющих ценность для учреждения (предприятия)" или, добавим, другого владельца ИР. Заметим, что в последнем случае в понятие ИР не включены средства передачи и переработки информации.
Не будем спорить ни с теми авторами, ни с другими, хотя признаемся, что нам кажется более предпочтительным более широкий подход к определению этого очень важного и интересного понятия. Для тех читателей, которые интересуются данной проблемой, рекомендуем прочитать монографию Г. Р. Громова.
Виртуальные (информационные) ресурсы [virtual resources] —информационные ресурсы других организаций, предприятий, фирм и т. п., доступные пользователям в режиме теледоступа по каналам глобальной связи, например Интернета.
ТЕОРИЯ ИНФОРМАЦИИ [information theory]
Раздел кибернетики, изучающий общие стороны процессов передачи, хранения, извлечения и классификации информации различной природы (в том числе биологической, технической, социальной и др.) независимо от ее семантического (смыслового) содержания. Общим средством анализа, описания и количественной оценки исследуемых процессов теории информации является ее математический аппарат, представляющий собой основу разрабатываемых и используемых теорий и методов.
Важнейшей частью теории информации является теория передачи информации [theory of communication], основоположником которой является американский математик К. Шеннон. Основными понятиями этого раздела теории являются: энтропия (количественная мера неопределенности ситуации, слово "энтропия" произошло от греческого "поворот", "превращение") и количество информации, измеряемое величиной изменения энтропии в условиях, связанных с получением информации. С использованием этих понятий выражается пропускная способность канала связи между источником информации и ее адресатом, равная максимально допустимой скорости передачи информации со сколь угодно малой вероятностью ошибки.
Составной частью теории информации является также теория кодирования (теория оптимального кодирования), рассматривающая вероятностные аспекты проблем кодирования и декодирования информации. Большой вклад в разработку теории информации внесли отечественные ученые: А. Н. Колмогоров, А. Я. Хинчин, Р. Л. Добрушин, В. А. Котельников, А. А. Харкевич и др. Возросшая необходимость не только количественного, но и содержательного анализа информационных процессов привела к появлению новой науки — информатики.
ИНФОРМАТИКА [informatics, information science]
Наука, изучающая информационные процессы и системы в социальной среде, их роль, методы построения, механизм воздействия на человеческую практику, усиление этого воздействия с помощью вычислительной техники. Возникла как дополнение и конкретизация теории информации из потребностей автоматизации социально-коммуникативных процессов и начала формироваться в 70-е гг. как научная база использования электронных вычислительных машин в управлении, науке, проектировании, образовании, сфере услуг и т. д.". Как всякая относительно новая и быстро развивающаяся отрасль знания, не только связанная с социальной сферой, но и широко использующаяся в ней, информатика получила в последние годы множество толкований, и не все они однозначны.
Наибольшие противоречия связаны с той частью данного понятия, которая определяет его семантические границы распространения. В качестве примера приведем другое определение: "Информатика — отрасль знания, изучающая закономерности сбора, преобразования, хранения, поиска и распространения документальной информации и определяющая оптимальную организацию информационной работы на базе современных технических средств".
Видимые отличия цитируемых определений заключаются, в частности, в том, что второе ограничивает понятие "информатика" технологическими процессами, входящими в функции информационных органов, а также документальной информацией. Следует отметить, что, несмотря на давность этого определения (1971), оно практически действует и в настоящее время в среде работников информационных органов и служб, в недрах которых изначально и было порождено.
Еще один подход связан с организациями, подведомственными Комитету по информатизации России, который основное внимание акцентирует на инструментальных (программных и технических) средствах информатики и информатизации:
"ИНФОРМАТИКА [informatics, computer science] — ...группа дисциплин, занимающихся различными аспектами применения и разработки ЭВМ: прикладная математика, программирование, программное обеспечение, искусственный интеллект, архитектура ЭВМ, вычислительные сети".
Анализируя сказанное, мы склонны предпочесть вариант "кибернетиков" как более объективный и полный.
В целях более глубокого понимания нашими читателями указанного термина продолжим выборочное цитирование соответствующей статьи "Словаря по кибернетике": "...Важнейшими категориями информатики являются понятия информационных сред (социальных подсистем, в которых осуществляются информационные процессы и куда внедряются ЭВМ как усилители человеческого интеллекта), полного информационного цикла (включающего зарождение информации, ее переработку, передачу, использование для снижения энтропии рассматриваемой социальной системы), полезной работы (отдачи) ЭВМ. Отдача ЭВМ, коэффициент полезного действия зависят от уровня функционирования социальной среды, в которой они задействованы. — ее упорядоченности, системности. условий для творческой деятельности людей, сложности и важности задач, решаемых с помощью машин. Информатика не заменяет собой кибернетику, теорию информации, электронику, системотехнику, а взаимодействует с ними, имея ряд общих проблем. Интегральный характер информатики заключается также в ее взаимодействии с такими дисциплинами, как теория познания, семиотика, лингвистика, документалистика, библиотековедение".
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ [information technology]
Комплекс методов, способов и средств, обеспечивающих хранение, обработку, передачу и отображение информации и ориентированных на повышение эффективности и производительности труда.
Информационная технология (ИТ) является непременной составной частью большинства видов интеллектуальной, управленческой и производственной деятельности человека и общества. Развитие ИТ в современных условиях основано на применении вычислительной техники и связанных с нею методов и средств автоматизации информационных процессов. В зависимости от степени использования этих средств ИТ условно разделяют на традиционную и современную.
СПРАВОЧНО-ИНФОРМАЦИОННОЕ ОБСЛУЖИВАНИЕ (СИО)
Можно кратко сформулировать сущность понятия СИО как "совокупность процессов по удовлетворению информационных запросов потребителей информации". Данное определение СИО взято из отечественного стандарта и расширено нами с научно-технической информации на любой вид информации.
Характерной особенностью СИО является его преимущественная ориентация на выявленные устойчивые или длительно существующие информационные потребности определенных групп пользователей. Реализация СИО предполагает выполнение библиотеками и информационными органами достаточно стандартизированных в рамках организаций видов работ по комплектованию справочно-информационных фондов, их каталогизации, созданию и ведению баз данных (БД), поиску и распространению информации по заявленным в форме "запросов" или "подписки" на обслуживание потребностям пользователей и т. п. В отличие от справочно-библиографического обслуживания (СБО), ориентированного на предоставление пользователям (в том числе читателям) сведений библиографического характера, СИО распространяется на подготовку и выдачу заинтересованным лицам и организациям данных любого вида. В указанном контексте СБО можно рассматривать как одну из разновидностей СИО.
По своим основным признакам СИО может быть отнесено к категории сравнительно недорогих массовых или стандартных видов услуг. Оно не предусматривает возможности удовлетворения потребностей слишком привередливых или не вписывающихся в общий ряд "сложных" клиентов, нуждающихся в индивидуальной подготовке документов и данных, а также в специальном порядке и сроках их предоставления.
Необходимость устранения указанного недостатка привела к появлению другого режима обслуживания и связанного с ним понятия — "информационное обеспечение".
ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ (ИО)
1. ГОСТ 7.27—80 трактует ИО как "совокупность процессов по подготовке и предоставлению специально подготовленной научно-технической информации (НТИ) для решения управленческих и научно-технических задач в соответствии с этапами их решения".
Отдавая должное уважение времени и специалистам, породившим этот термин, отметим, что жизнь требует его более расширенного толкования. На наш взгляд, ограничение ИО только научно-технической составляющей должно быть снято, как и состав задач, на которые оно распространяется. В этом случае понятие "ИО" получит следующее определение:
"ИО — совокупность процессов по подготовке и предоставлению специально подготовленной информации для решения управленческих, научных, технических, производственных, коммерческих и других задач в соответствии с этапами их решения".
2. ОБЩИЕ ТЕРМИНЫ
АЛГОРИТМ [algorithm]
1. Последовательность действий (операций) и правил их выполнения или команд, предназначенных для решения определенной задачи или группы задач.
2. Предписание, определяющее ход вычислительного процесса, связанного с преобразованием данных от некоторого их исходного состояния к требуемому результату. Формальные описания алгоритмов аналогичны представлениям основных частей программ, которые их реализуют, поэтому многое, что относят к описанию конкретных программ, применимо к алгоритму, и наоборот.
Некоторые виды алгоритмов
Адаптивный алгоритм [adaptive algorithm] — алгоритм, обладающий свойством настраиваться на условия применения.
Линейный алгоритм [serial algorithm] — алгоритм, не содержащий ветвей и циклов, все элементы которого выполняются последовательно.
Логический алгоритм [logical algorithm] — алгоритм решения логической задачи.
Алгоритм маршрутизации [routing algorithm] — алгоритм решения задачи определения оптимального пути, по которому будут передаваться данные в коммуникационной сети.
Параллельный алгоритм [parallel algorithm] — алгоритм, в котором часть или все операции независимы и могут выполняться одновременно (параллельно).
Последовательный алгоритм [sequential algorithm]
1. Алгоритм, все действия которого выполняются последовательно.
2. Алгоритм обслуживания, реализующий принцип очереди — "первый на входе — первый на выходе" [FIFO — First Input — First Output].
Циклический алгоритм [round-robin algorithm] — алгоритм обслуживания в системах с разделением времени, при котором задача, использовавшая выделенный ей ресурс времени центрального процессора, прерывается и помещается в конец очереди.
ПРОГРАММА [program, routine]
1.Последовательность операций, в том числе нескольких параллельных, выполняемых ЭВМ для достижения поставленной цели или задачи.
2.Описание на языке программирования или в машинном коде действий, которые должна выполнить ЭВМ в соответствии с алгоритмом решения конкретной задачи или группы задач (синоним — машинная программа).
3.Упорядоченная последовательность команд, подлежащих обработке.
Некоторые понятия, связанные с термином "программа"
Машинная программа [computer (machine) program] — программа, написанная на машинном языке (в машинном коде).
Структура программы [program structure] — общая схема построения программы, рассматривающая ее составные компоненты (программные блоки) и взаимосвязи между ними.
Спецификация программы, программная спецификация [program specification] — точная и полная формулировка определенной задачи или группы задач, содержащая сведения, необходимые для построения ее алгоритма (программы) или решения. Содержит описание результата, который должен быть достигнут с помощью конкретной программы, а также того, что для достижения этого результата программа должна делать без упоминания, как достигнут указанный результат.
Верификация программы [program verification]
1. Установление любым корректным методом факта соответствия программы заданным целям ее создания или приобретения — установление правильности программы.
2. Формализованный контроль или проверка работоспособности программы.
Отладка программы [debugging] — обнаружение, локализация и устранение
ошибок в компьютерной программе.
Отладчик [debugger] — программа, предназначенная для анализа поведения другой программы, обеспечивающая ее трассировку (отслеживание и распечатку выполняемых программой команд, изменений переменных или данных о других событиях, связанных с выполнением программы), останов в указанных точках или, при выполнении указанных условий, просмотр и изменение ячеек памяти, регистров процессора и команд программы.
Трассировка [trace] — метод проверки правильности функционирования программ при их выполнении путем отображения изменений всех значений переменных. Этим достигается сокращение поиска ошибочных команд, из-за которых переменные принимают неверные значения. Трассировка выполняется при помощи ввода в проверяемую программу специальных команд или с использованием специальных сервисных программ.
Тестирование программы [program testing] — проверка программы в рабочих условиях с некоторым специально созданным (тестовым) массивом данных в целях определения ее работоспособности в соответствии с заданными критериями оценки.
Испытания программы [program verification and validation] — всесторонняя (по формализованным признакам — "Verification" и общей субъективной оценке — "Validation") проверка и тестирование программы при сдаче ее в эксплуатацию или аттестации.
ПОДПРОГРАММА [subroutine]
Небольшая часть программы, связанная с реализацией какой-либо повторяющейся функции, процедуры или операции и вызываемая для выполнения из разных мест программы.
Б зависимости от того, являются ли подпрограммы частью разработки использующей их программы или заимствуются из других программ, они подразделяются на внутренние подпрограммы [internal subroutines] и внешние подпрограммы [external subroutines]. В качестве последних могут использоваться и так называемые стандартные подпрограммы или программы [standard subroutines, standard programs] — программы, помещенные в библиотеку программ1.
ПРОГРАММИРОВАНИЕ [programming]
Совокупность процессов, связанных с разработкой программ и их реализацией. В широком смысле к указанным процессам относят все технические операции, необходимые для создания программ, включая анализ требований, все стадии разработки, а также реализации в виде готового программного продукта. В узком смысле под программированием часто понимают только процессы выбора структуры, кодирования и тестирования программ.
В зависимости от назначения и/или способа написания программ различают:
Прикладное программирование [application programming] — разработка и отладка программ для конечных пользователей, например бухгалтерских, обработки текстов и т. п.
Системное программирование [system programming] — разработка средств общего программного обеспечения, в том числе операционных систем, вспомогательных программ, пакетов программ общесистемного назначения, например: автоматизированных систем управления, систем управления базами данных и т. д.
Декларативное (логическое, продукционное) программирование [declarative programming, logical programming] — метод программирования, предназначенный для решения задач искусственного интеллекта. В указанном контексте программа описывает логическую структуру решения задачи, указывая преимущественно, что нужно сделать, не вдаваясь в детали, как это делается. Используются языки программирования типа Пролог.
Объектно-ориентированное программирование, объектное программирование, ООП [OOP — Object-Oriented Programming] — метод программирования, основанный на использовании концепции объекта, абстрагирующего конкретные его реализации в предметной области. При этом данные тесно связываются с выполняемыми над объектами процедурами. Например, круг на экране монитора может рассматриваться как объект, данные о котором характеризуют положение (координаты) центра, величину радиуса, толщину и цвет линии. Процедуры, связанные с этим объектом, — перемещение, изменение размера, стирание и т. д. Объектно-ориентированное программирование разрабатывалось и усовершенствовалось в 1960—1970-х гг. В настоящее время используется в ряде языков программирования высокого уровня (Си++, Java, Смолток, ObjectLisp и др). В начале 90-х гг. была выявлена потребность в выработке единых спецификаций, которые должны позволить программным продуктам различных фирм взаимодействовать друг с другом в общей информационной среде. Решение указанной задачи взяла на себя фирма OMG (США). Выработанная ею идеология "Бизнес-объекта" к 1997 г. получила достаточно широкое распространение при выработке промышленных программных приложений. Основу этой идеологии составляет "Общая архитектура брокера объектных запросов" — COBRA (Common Object Request Broker Architecture), центральной частью которой является спецификация на программный продукт (ORB — Object Request Broker), представляющий собой набор доменов или динамических библиотек, обеспечивающих взаимодействие различных программ в распределенной компьютерной среде. Кроме того, фирма OMG разработала спецификации обмена данными между брокерами различных фирм-производителей — GIOP (General Inter ORB Protocol), а с той же целью для Internet — HOP (Internet Inter ORB Protocol). Поддержкой и развитием бизнес-объектной технологии занимается организованный в рамках OMG специальный комитет — BODTF (Business Object Domain Task Force). В 1998 г. этим комитетом была выпущена спецификация (BOCA — Business Object Component Architecture), регламентирующая построение программных систем из компонент-объектов, созданных на основе технологии CORBA/IIOP. Подробнее см. [407, 423, 434].
Параллельное программирование [concurrent programming] — разработка программ, обеспечивающих одновременное (параллельное) выполнение операций, связанных с обработкой данных.
Процедурное (процедурно-ориентированное) программирование [procedure-oriented programming] — метод программирования, в соответствии с которым программы пишутся как перечни последовательно выполняемых команд. При этом используются процедурно-ориентированные языки программирования.
Структурное программирование, модульное программирование [structured programming, modular programming] — метод написания программ небольшими независимыми частями — модулями, каждый из которых связан с какой-либо процедурой или функцией. При этом результирующая программа организуется в виде совокупности взаимосвязанных по определенным правилам модулей. Это упрощает разработку сложных программных продуктов и их тестирование.
Функциональное программирование [functional programming] — метод программирования, основанный на разбиении алгоритма решения задачи на отдельные функциональные модули, а также описании их связей и характера взаимодействия. Для функционального программирования наиболее широко используются языки НОРЕ и ML. Элементы функционального программирования реализуются также другими языками, например Си.
Эвристическое программирование [hueristic programming] — метод программирования, основанный на моделировании мыслительной деятельности человека. Используется для решения задач, не имеющих строго формализованного алгоритма или связанных с неполнотой исходных данных.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ПО [software]
Совокупность программных средств, управляющих работой ЭВМ и/или автоматизированной системы, а также документация, необходимая для эксплуатации этих средств. Различают общее и прикладное (специальное) программное обеспечение.
ПРОГРАММНАЯ ДОКУМЕНТАЦИЯ [program documentation]
Комплект документов, содержащих полное описание программы и необходимый состав сведений для ее распространения (в том числе продажи) и использования.
3 ЯЗЫКИ ПРОГРАММИРОВАНИЯ
ЯЗЫК ПРОГРАММИРОВАНИЯ [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]
1.Машинный язык, общий для семейства ЭВМ.
2.Язык программирования в СУБД с автономным языком.
Общий язык [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
1. Язык программирования высокого уровня, предназначенный для создания пакетов прикладных программ, связанных с манипулированием большими объемами данных (Xbase). Первая версия языка dBASE II вышла в свет в начале 1980-х гг., в августе 1994 г. была выпущена версия dBASE 5.0 для Windows (подробнее см. [79]).
2. Семейство программ для ПЭВМ, предназначенное для манипулирования большими объемами данных.
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.php>.
Версии языка HTML:
1. HTML 2.0 — стандарт был утвержден в ноябре 1994 г. организацией IETF (Internet Engineering Task Force). В нем были расширены возможности предыдущей версии языка, и он получил широкое распространение как у профессионалов, так и у любителей.
2. HTML 3.0 — проект версии языка был опубликован в марте 1995 г. В нем были произведены радикальные изменения предыдущих версий: включены дополнительные возможности, включая таблицы, математические выражения и т. д. Это стало причиной того, что он не принят в качестве официальной спецификации и был заменен спецификацией HTML 3.2.
3. HTML 3.2 (кодовое наименование проекта "Wilbur") — был опубликован и начал широко использоваться с мая 1996 г., получил официальное утверждение и популярность из-за совместимости с HTML 2.0 1997 г.
4.php 4.0 (кодовое наименование проекта "Cougar") — последняя версия языка. В нем реализованы многие распространенные концепции Web-дизайна и приняты некоторые средства HTML 3.2. Самым значительным отличием HTML 4.0 от предыдущих версий является кодировка Unicode, тэг "OBJECT", позволяющий работать с мультимедиа (с видеоклипами и звуком) и др.
5.DHTML (Dynamic HTML) — динамическая HTML — развитие языка HTML для создания движущихся, находящихся в динамике, эффектов на Web-страницах.
6.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 и др. для создания унифицированного формата разработки таких каталогов, их публикации и обмена их содержимым.
4 СВЯЗАННЫЕ С ПРОГРАММИРОВАНИЕМ ТЕРМИНЫ
ДИРЕКТИВА [directive]
1. Вводимое в ЭВМ (оператором или пользователем) в повелительной форме сообщение или команда, которая содержит указание на то, какие необходимо выполнить действия.
2. Компонент программы на языке ассемблера, управляющий последующей компоновкой программы, но не вызывающий появление машинной команды.
ЗАДАНИЕ [job]
1. Единица работы, определяемая пользователем, которую должна выполнить ЭВМ.
2. Совокупность программ и данных, обрабатываемых автоматизированной системой как единое целое. Описание задания составляется на языке управления заданиями. Типизированные описания вариантов заданий, характерных для ЭВМ определенного класса или типа, реализуются в соответствующих операционных системах.
Поток заданий [job stream] — последовательность заданий, выполняемых ЭВМ под управлением операционной системы.
Опция [option] — параметр или вариант выполнения задания для обрабатывающей его программы, предназначенный для управления режимом ее работы.
Итерация [iteration] — один цикл выполнения задания или команды вычислительной машиной.
КОМАНДА, ИНСТРУКЦИЯ [instruction, command]
1. Управляющий сигнал, инициирующий выполнение процессором конкретной операции.
2. В языках программирования — значимое выражение, определяющее одну операцию и ее операнды.
3.Описание операции, которую должна выполнить ЭВМ.
Наиболее употребительные термины, связанные с видами команд
Адресная команда [address instruction] — команда программы, осуществляющая обращение к адресам операндов либо к адресам команд, указанных в определенных местах командного слова.
Безадресная команда [no-address instruction] — команда, определяющая операнды, для которых задана операция в неявной форме.
Многоадресная команда [multi-address instruction] — машинная команда, содержащая два и более адреса в явном виде.
Арифметическая команда [arithmetic instruction] — команда, определяющая выполнение десятичной операции над числами с фиксированной или плавающей запятой.
Команда ассемблера [assembly instruction] — основная конструкция языка ассемблера, с помощью которой записывается программа на этом языке. Как правило, одна команда ассемблера транслируется в одну эквивалентную машинную программу.
Байтовая команда [byte instruction] — команда выполнения операций над байтами или же команда, занимающая один байт.
Команда ввода-вывода (ввода/вывода) [input/output instruction] — машинная команда, выполняющая соответственно ввод данных с внешнего устройства в основную память или их вывод из основной памяти во внешнее устройство.
Команда вызова [call instruction] — команда, осуществляющая вызов стандартной программы или программы пользователя.
Исполнительная команда [effective instruction] — команда, которая не требует модификации для последующего выполнения вычислительной машиной.
Машинная команда [computer instruction] — команда, которая может быть непосредственно распознана центральным процессором ЭВМ, для которой она создана.
Основная команда [general instruction] — команда, входящая в стандартный набор команд ЭВМ.
Команда останова [halt (breakpoint) instruction] — команда, останавливающая выполнение машинной программы (см. "Команда паузы").
Команда условного останова [optional-stop instruction] — команда, позволяющая произвести с пульта оператора ЭВМ останов выполнения текущей программы.
Команда паузы [pause instruction] — команда, определяющая временное прекращение выполнения программы, работа которой вновь может быть возобновлена только после поступления внешнего прерывания.
Команда произвольной паузы, произвольного останова [optional pause instruction] — команда, допускающая ручной приостанов выполнения машинной программы.
Команда прерывания [trap instruction] — команда, вызывающая внутреннее прерывание с указанным номером.
Прерываемая команда [restartable instruction] — команда, выполнение которой может быть приостановлено при возникновении прерывания и продолжено после его обработки.
Команда повторения, повторяемая команда [repetition instruction] — команда, вызывающая повторение определенной последовательности команд, образующих циклическую группу — цикл, а также обеспечивающая установку и проверку условия выхода из цикла.
5 ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ЗАДАЧ ПРОГРАММИРОВАНИЯ
ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ АИС, ТЕХНИЧЕСКИЕ (АППАРАТНЫЕ) СРЕДСТВА [hardware]
Совокупность электрических, электронных и механических компонентов автоматизированных систем составляет их техническое обеспечение (в отличие от программных средств [software], представляющих собой программное обеспечение автоматизированных систем).
ЭЛЕКТРОННАЯ ВЫЧИСЛИТЕЛЬНАЯ МАШИНА, ЭВМ, КОМПЬЮТЕР [computer]
Комплекс технических и программных средств, основанных на использовании электроники и предназначенных для автоматической или автоматизированной обработки данных в процессе решения вычислительных и информационных задач.
Впервые принципы построения и функционирования ЭВМ были сформулированы американским ученым-математиком Джоном фон Нейманом в 1945 г. В соответствии с указанными принципами в состав ЭВМ должны входить: арифметическое логическое устройство (АЛУ [АШ — Arithmetic and Logic Unit]), выполняющее арифметические и логические операции; устройство управления, предназначенное для организации выполнения программ; запоминающие устройства (ЗУ); внешние устройства для ввода-вывода данных.
ПОКОЛЕНИЕ ЭВМ [computer generation]
Один из способов классификации ЭВМ по степени их развития. Каждое поколение ЭВМ отличается от других архитектурой, элементной базой, степенью развитости программных средств, производительностью и другими показателями. В настоящее время различают пять поколений ЭВМ.
ЭВМ первого поколения [first-generation computer] — использовали ламповую элементную базу, обладали малым быстродействием и объемом памяти, имели неразвитые операционные системы, программирование выполнялось на языках программирования низкого уровня (конец 40-х — 50-е гг.).
ЭВМ второго поколения [second-generation computer] — использовали полупроводниковую элементную базу, изменяемый состав внешних устройств, языки программирования высокого уровня и принцип библиотечных программ (конец 50-х, 60-е и начало 70-х гг.).
ЭВМ третьего поколения [third-generation computer] — использовали в качестве элементной базы интегральные схемы (ИС), имели развитую конфигурацию внешних устройств и стандартизированные средства сопряжения, обладали большим быстродействием и объемами основной и внешней памяти. Развитая операционная система обеспечивала работу в мультипрограммном (то есть с использованием многих программ) режиме (70-е — начало 80-х гг.).
ЭВМ четвертого поколения [fourth-generation computer] — используют большие и сверхбольшие интегральные схемы (БИС и СБИС), виртуальную память, многопроцессорный с параллельным выполнением операций принцип построения, развитые средства диалога (середина 80-х гг. по настоящее время).
ЭВМ пятого поколения [fifth-generation computer] — характеризуются наряду с использованием более мощных СБИС применением принципа "управления потоками данных" (в отличие от принципа Джона фон Неймана "управления потоками команд"), новыми решениями в архитектуре вычислительной системы и использованием принципов искусственного интеллекта. С ЭВМ пятого поколения связывают наряду с другими особенностями возможность ввода данных и команд голосом. Начало разработки ЭВМ этого поколения можно отнести ко второй половине 80-х гг., внедрения первых образцов — к первой половине 90-х гг.
ЭВМ МОГУТ РАЗЛИЧАТЬСЯ ТАКЖЕ ПО СЛЕДУЮЩИМ ОСНОВАНИЯМ:
1. По принципу построения и действия
Аналоговая ЭВМ (ABM) [analog computer] — вычислительная машина непрерывного действия, обрабатывающая аналоговые данные. Предназначена для воспроизведения определенных соотношений между непрерывно изменяющимися физическими величинами. Основные области применения связаны с моделированием различных процессов и систем.
Цифровая ЭВМ (ЦЭВМ) [computer] — то же, что ЭВМ. Уточнение типа (ЦЭВМ) производится в случаях, когда это особо необходимо, например в сложных вычислительных системах, включающих ЭВМ разных видов.
Комбинированная (аналого-цифровая) ЭВМ [combined computer] — ЭВМ, сочетающая аналоговую и цифровую форму обработки данных.
Многопроцессорная ЭВМ (система) [multiprocessor system (computer)] — ЭВМ, архитектура которой предусматривает использование большого числа процессоров, чем обеспечивается существенное повышение ее вычислительной мощности и, в частности, возможность обработки значительных объемов информации. Принципы построения таких ЭВМ реализованы в симметричных многопроцессорных системах [SMP — Symmetric Multiprocessor Systems] (например, PowerScale группы компаний Bull), системах с массовым параллелизмом [МРР — Massively Parallel Processing Architectures] и др.
Транспьютер [transputer— or англ. TRANSistor и comPUTER]
1. Микроэлектронный прибор, объединяющий на одном кристалле мощный микропроцессор, быструю память, интерфейс внешней памяти и каналы ввода-вывода. Предназначен для построения параллельных вычислительных структур. Впервые был создан в 1983 г. фирмой INMOS (Великобритания).
2.ЭВМ с многопроцессорной параллельной архитектурой, чем обеспечивается существенное увеличение ее производительности. При построении транспьютеров используется специальный язык параллельного программирования Occam.
2. По вычислительной мощности и габаритам
СуперЭВМ [supercomputer] — класс сверхпроизводительных ЭВМ, предназначенных для решения особо сложных задач в областях науки, техники и управления. Сверхвысокая производительность достигается преимущественно за счет параллельной архитектуры, предусматривающей использование большого числа функционально ориентированных процессоров и параллельного программирования, сверхглубокого охлаждения процессоров (до температур, близких к абсолютному нулю), а также высокоскоростных СБИС. В мире насчитывается ограниченное количество ЭВМ такого типа (порядка 500). Основными производителями их являются фирмы США и Японии, в частности Cray, Fujitsu и NEC.
Большая ЭВМ [large computer] — ЭВМ, имеющая высокую производительность, большой объем основной и внешней памяти, обладающая способностью параллельной обработки данных и обеспечивающая как пакетный, так и интерактивный (диалоговый) режимы работы.
ЭВМ средней производительности [medium computer] — ЭВМ с производительностью до нескольких миллионов операций в секунду, емкостью оперативной памяти в несколько десятков Мбайт и разрядностью машинного слова не менее 32.
Малая ЭВМ, мини-ЭВМ [small computer, minicomputer] — в прошлом так назывались ЭВМ, конструктивно выполненные в одной стойке и занимавшие небольшой объем (порядка десятых долей кубометра). По сравнению с большими и средними машинами мини-ЭВМ обладают существенно более низкой производительностью и объемом памяти. Термин "мини-ЭВМ" не имеет точного определения, он очень близок по содержанию к термину "микроЭВМ", четкой границы между двумя классами этих машин нет.
МикроЭВМ [microcomputer]
1. Кристалл большой или сверхбольшой интегральной схемы, который в отличие от микропроцессора содержит все логические элементы, необходимые для образования полноценной вычислительной системы.
2.ЭВМ, использующая в качестве арифметического и логического устройства один или несколько микропроцессоров. Указанное значение термина в смысле отнесения ЭВМ к тому или иному классу машин может быть признанно некорректным в связи с широким применением микропроцессорной техники в машинах разных классов.
3.С понятием микроЭВМ связаны также термины:
Однокристальная ЭВМ [single-chip computer] — микроЭВМ, выполненная на одной большой (БИС) или сверхбольшой (СБИС) интегральной микросхеме.
Одноплатная ЭВМ [single-board computer] — микроЭВМ, у которой микропроцессор, микросхемы устройств памяти и подсистемы ввода-вывода, а также другие основные компоненты размещены на одной печатной плате.
Однопроцессорная ЭВМ [monoprocessor computer] — ЭВМ с одним центральным процессором.