В зависимости от назначения и/или способа написания программ




ОБЩИЕ ТЕРМИНЫ

Алгоритм [ 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 subroutunes, standard programs ] - Программы, помещенные в библиотеку программ.

Программирование [ programming ] -

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

 

 

В зависимости от назначения и/или способа написания программ

различают:

  • Прикладное программирование [ application programming ] - Разработка и отладка программ для конечных пользователей (см. ниже прикладная программа), например, бухгалтерских, обработки текстов и т.п.
  • Системное программирование [ system programming ] - Разработка средств общего программного обеспечения, в том числе: операционных систем, вспомогательных программ, пакетов программ общесистемного назначения, например, автоматизированных систем управления, систем управления базами данных и т.д.
  • Декларативное (логическое, продукционное) программирование, [ declarative programming, logical programming ] - Метод программирования, предназначенный для решения задачискусственного интеллекта ”. В указанном контексте программа описывает логическую структуру решения задачи, указывая преимущественно, что “нужно сделать”, не вдаваясь в детали “как это делается”. Используются языки программирования типа Пролог.
  • Объектно-ориентированное программирование, объектное программирование, ООП [ OOP - Object-Oriented Programming ] - Метод программирования, основанный на использовании концепции “ объекта ”, абстрагирующего конкретные его реализации в предметной области. При этом данные тесно связываются с выполняемыми над объектами процедурами. Например, круг на экране монитора может рассматриваться как объект, данные о котором характеризуют положение (координаты) центра, величину радиуса, толщину и цвет линии. Процедуры, связанные с этим объектом - перемещение, изменение размера, стирание и т.д. Объектно-ориентированное программирование разрабатывалось и усовершенствовалось 1960 - 1970-х гг. В настоящее время используется в ряде языков программирования высокого уровня (Си++, Java, Смолток, ObjectLisp и др). Подробнее об объектном программировании см. [340]. В начале 90-х годов была выявлена потребность в выработке единых спецификаций, которые должны позволить программным продуктам различных фирм взаимодействовать друг с другом в общей информационной среде. Решение указанной задачи взяла на себя фирма OMG (США). Выработанная ею идеология “ Бизнес-объекта ” к 1997 г. получила достаточно широкое распространение при выработке промышленных программных приложений. Основу этой идеологии составляет “ Общая аритектура брокера объектных запросов ” - COBRA (Common Object Request Broker Architecture), центральной частью которой является спецификация на программный продукт (ORBObject Request Broker), представляющий собой набор доменов или динамических библиотек, который обеспечивает взаимодействие различных программ в распределенной компьютерной среде. Кроме того фирма OMG разработала спецификации обмена данными между брокерами различных фирм-производителей – GIOP (General Inter ORB Protocol), а с той же целью для Internet – IIOP (Internet Inter ORB Protocol). Поддержкой и развитием бизнес-объектной технологии занимается специально организованный в рамках OMG специальный комитет – BODTF (Business Object Domain Task Force). В 1998 г. этим комитетом была выпущена спецификация (BOCABusiness Object Component Architecture), которая регламентирует построение программных систем из компонент-объектов, созданных на основе технологии CORBA/IIOP. Подробнее см. - [407, 423, 434].
  • Параллельное программирование [ concurrent programming ] - Разработка программ, обеспечивающих одновременное (параллельное) выполнение операций, связанных с обработкой данных.
  • Процедурное (процедурно-ориентированное) программирование [ procedure-oriented programming ] - Метод программирования, в соответствии с которым программы пишутся как перечни последовательно выполняемых команд. При этом используется процедурно-ориентированные язык программирования.
  • Структурное программирование, модульное программирование [ structured programming, modular programming ] - Метод написания программ небольшими независимыми частями - модулями, каждый из которых связан с какой-либо процедурой или функцией. При этом результирующая программа организуется в виде совокупности взаимосвязанных по определенным правилам модулей. Это упрощает разработку сложных программных продуктов и их тестирование (см. ниже также функциональное программирование).
  • Функциональное программирование [ functional programming ] - Метод программирования, основанный на разбиении алгоритма решения задачи на отдельные функциональные модули, а также описании их связей и характера взаимодействия. Для функционального программирования наиболее широко используются языки HOPE и ML. Элементы функционального программирования реализуются также другими языками, например, Си.
  • Эвристическое программирование [ hueristic programming ] - Метод программирования, основанный на моделировании мыслительной деятельности человека. Используется для решения задач, не имеющих строго формализованного алгоритма или связанных с неполнотой исходных данных.

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Язык программирования

[ programming language ] -

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

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

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

  • Алгоритмический язык [ algorithmic language ] - Совокупность символов, соглашений и правил, используемых для однозначного описания алгоритмов и обычно являющаяся часть языка программирования;
  • Неалгоритмический язык [ nonalgorithmic language ] - Язык программирования, тексты которого не содержат указаний на порядок выполнения операций и служат лишь исходным материалом для синтеза алгоритма решения задачи;
  • Формальный язык [ formal language ] –
  1. Язык программирования, построенный по правилам некоторого логического исчисления или формальной грамматики [ formal grammar ], представляющей собой систему правил построения в заданном алфавите конечных знаковых последовательностей, множество которых образует формальный язык;
  2. См. “ алгоритмический язык “;
  • Исходный язык [ 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 ] - Универсальный язык программирования, относящийся к категории языков низкого уровня, структура которого определяется форматами команд, данными машинного языка и архитектурой ЭВМ. Используется программистами в тех случаях, когда невозможно применение языка высокого уровня или требуются эффективные программы в машинных кодах.
  • Декларативный (непроцедурный) язык [ declararative (nonprocedural) language ] - Язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог, QBE);
  • Императивный (процедурный) язык [ imperative language ] - Язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения;
  • Язык функционального программирования, функциональный язык [ functional language ] - Декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений.
  • Специализированный язык [ special language ] - Язык программирования, ориентированный на решение определенного круга задач;
  • Язык описания страниц [ PDL - Page Description Language ] - Специализированный язык, предназначенный для печатающих устройств. Предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript.
  • Автономный язык [ freestanding language ] - Специализированныйязык высокого уровня, в замкнутых СУБД (“ СУБД с автономным языком “);
  • Язык конструирования интерактивных технологий - В СУБД - язык, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы;
  • Язык манипулирования данными, ЯМД [ DML - Data Manipulation Language ] - В СУБД - язык, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;
  • Язык обработки списков [ list language ] - Специализированный язык, предназначенный для описания процессов обработки данных, представленных в виде списков объектов;
  • Язык описания данных [ DDL - Data Description Language ] - Язык, предназначенный для описания “концептуальной схемы” базы данных;
  • Язык описания хранения данных [ DSDL - Data Storage Description Language ] - Язык, предназначенный для описания физической структуры (схемы) базы данных;
  • Язык описания страниц [ page description language ] Система для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц.
  • Язык представления знаний [ KRL - Knowledge Representation Language ] - Декларативный или декларативно-процедурный язык, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог);
  • Язык публикаций [ publication language ] - Язык, используемый для публикации алгоритмов и программ;
  • Язык спецификаций [ specification language ] - Декларативный язык для задания спецификаций программ;
  • Проблемно-ориентированный язык [ problem-oriented language ] - Язык программирования, предназначенный для решения определенного класса задач (проблем);
  • Процедурный (процедурно-ориентированный) язык [ procedure-orinted language ] - Проблемно-ориентированный язык, который облегчает выражение процедуры, как точного алгоритма;
  • Язык реального времени [ real-time language ] -Язык, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада);
  • Язык управления пакетом [ batch control language ] - Набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных;
  • Язык управления заданиями [ job-control language ] - Язык, на котором записывается последовательность команд, управляющих выполнением задания. В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями преобразуемыми объектами являются целые программы и выходные потоки данных, обработанных этими программами.
  • Общесетевой командный язык [ CNCL - Common Network - Command language ] - Стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД;
  • Системный язык [ system language ] - Язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;
  • Язык общего назначения, универсальный язык [ universal programming language ] - Язык программирования, ориентированный на решение задач практически из любой области и объединяющий на единой методической основе наиболее существенные свойства и средства современных машино- и проблемноориентированных языков программирования (например, язык ассемблера, ПЛ/1 и др.);
  • Язык ориентированный на пользователя [ user-oriented language ] - Слабоформализованный язык программирования, близкий к естественному языку;
  • Язык меню [ menu language ] - Язык диалога пользователя с системой, основанный на использовании меню.


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: