Компьютерная программа представляет собой логически упорядоченную последовательность команд

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

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

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

Синтаксис — это система правил, в соответствии с которыми из символов алфавита строятся допустимые для данного языка программирования конструкции.

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

7 0ПACHbIX КОМАНД для Linux/Termux/Kali Nethunter/Andrax | UnderMind

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

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

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

Отметим особенности (как достоинства, так и недостатки), присущие языкам низкого уровня:

  • 1) высокое качество создаваемых программ с точки зрения их компактности и скорости выполнения;
  • 2) возможность прямого использования аппаратных ресурсов;
  • 3) учет особенностей функционирования данного компьютера;
  • 4) трудоемкость процесса составления программ;
  • 5) низкая скорость программирования;
  • 6) невозможность непосредственного использования программы, составленной на языке низкого уровня, на компьютере с процессором другого типа.

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

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

Рассмотрим три группы языков высокого уровня: процедурные, декларативные и объектно-ориентированные.

ЯЗЫК АССЕМБЛЕРА С НУЛЯ | #1 НАЧАЛО

Процедурные языки

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

Процедурные языки, в свою очередь, можно разделить на структурные и неструктурные языки программирования:

  • 1) в структурном программировании исходная задача разбивается на большое число мелких подзадач, каждая из которых решается с помощью своей отдельной процедуры или функции. Такой подход позволяет разрабатывать большие проекты силами нескольких программистов;
  • 2) неструктурное программирование допускает использование в явном виде команды так называемого «безусловного перехода» (в большинстве языков это команда называется GOTO). Это влечет за собой серьезную проблему: большую программу, которая содержит множество переходов вверх-вниз по тексту, очень трудно читать, изменять и дополнять. Типичными представителями неструктурных языков являются ранние версии Бейсика и Фортрана.

Декларативные языки

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

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

Например, надо пройти из пункта А в пункт Б по улицам города.

Декларативная программа будет состоять из плана города, в котором указаны оба пункта, и правил дорожного движения. Руководствуясь этими правилами и планом, прохожий сам найдет дорогу из пункта А в пункт Б.

Процедурная программа будет представлять собой список команд, предписывающий последовательность действий: например, сколько метров или кварталов требуется пройти в данном направлении и куда, направо или налево, повернуть на данном перекрестке.

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

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

Декларативные языки, в свою очередь, делятся на функциональные (аппликативные) и логические языки.

  • 1. В основе функциональных языков лежит понятие функции как «черного ящика», имеющего несколько параметров (аргументов) на входе и один результат (значение функции) — на выходе. В таких языках нет ни операторов присваивания, ни циклов, ни передачи управления. Все действия выполняются при помощи вызовов функций, а единственным правилом композиции является суперпозиция функций. Одним из первых функциональных языков был язык Лисп (LISP), созданный американским ученым Джоном Маккарти.
  • 2. Логическое программирование представляет собой попытку возложить на программиста (пользователя) только постановку задачи, а поиски путей ее решения (по правилам логического вывода, установленным языком) предоставить компьютеру. Вычисления в логических программах осуществляются методом проб и ошибок, поиском с возвратом к предыдущим шагам. Логические языки (например, Пролог) имеют специальные конструкции для описания объектов и связей (отношений) между ними.
Читайте также:
Программа для настройки сенсы в играх

Например, если дано, что:

А — отец Б,

Б — отец В,

Дед — это отец отца или отец матери, то программа логического вывода должна сама сделать заключение о том, что А — дед В.

Объектно-ориентированное программирование — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

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

Каждый объект относится к некоторому классу, которому присуши определенные свойства и определенные процедуры управления объектом (методы).

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

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

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

Типичными представителями объектно-ориентированных языков программирования являются языки C++, Java, Visual Basic.

Языки программирования для компьютерных сетей

Появление и развитие компьютерных сетей стало причиной появления многочисленных версий популярных языков, адаптированных для использования в сети. Остановимся более подробно на языке HTML (Hyper Text Markup Language) — универсальном языке разметки гипертекста.

Гипертекст представляет собой текст, в котором выделены (чаще всего цветом) отдельные знаки, слова, фразы или рисунки, называемые полями. С каждым полем в гипертексте связано определенное действие, например переход в другое место того же гипертекста, переход в другой гипертекст, проигрывание фрагмента звуко- или видеозаписи. Если при просмотре гипертекста выбрать мышкой (или курсором) одно из выделенных полей, то выполнится действие, связанное с выбранным полем, скажем, переход в другой гипертекст. Правила создания гипертекстов были разработаны несколько лет назад в рамках проекта «Всемирная паутина» (World Wide Web).

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

Вопросы для самоконтроля

  • 1. Дайте определение алгоритма.
  • 2. Перечислите основные свойства алгоритмов.
  • 3. В чем недостатки словесного способа описания алгоритмов?
  • 4. Что такое псевдокод?
  • 5. В чем достоинство блок-схем как способа описания алгоритмов?
  • 6. Какие алгоритмические конструкции вы знаете?
  • 7. Что такое языки программирования и для чего их создают?
  • 8. Что такое алфавит, синтаксис и семантика языка программирования?
  • 9. В чем отличие языков программирования низкого и высокого уровня?
  • 10. Как вы полагаете, для написания какого рода программ предназначены процедурные языки программирования?
  • 11. Чем отличаются декларативные языки программирования от процедурных?
  • 12. Опишите основные особенности объектно-ориентированных языков программирования.
  • 13. Для чего предназначен язык HTML?

Источник: bstudy.net

Лекция 8. Языки программирования

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

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

Для того чтобы сделать программу читабельной и иметь возможность следить за ее смысловой структурой, разработали символический язык ассемблер, близкий к машинному (конец 50-х – начало 60-х гг.), в котором появилось понятие переменной. Ассемб­лер стал первым полноценным языком программирования.

Благода­ря этому заметно уменьшилось время разработки и возросла надеж­ность программ. Для записи кодов операций и обрабатываемой информации в ассемблере используются стандартные обозначения, позволяющие записывать числа и текст в общепринятом виде, для кодов команд приняты мнемонические обозначения, например MOV AX, BX (переместить машинное слово из регистра AX в регистр BX), ADD AX, CX (сложить регистр AX c CX), JMP loop1 (безусловный переход не метку loop1) и др.

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

Источник: studfile.net

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

Компьютерная программа представляет собой логически упорядоченную последовательность команд, предназначен­ных для управления компьютером. Процессор компьютера — это большая интегральная схема. Все данные и команды он получает в виде электрических сигналов. В двоичном коде наличие сигнала описывается понятием «1», а его отсутствие — понятием «О».

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

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

Читайте также:
Что входит в программу тура

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

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

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

Сегодня практически все программы создаются с помощью язы­ков программирования. Теоретически программу можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически пере­вести такую программу в машинный код пока невозможно.

Языки программирования — это формальные искусственные язы­ки. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.

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

Словарный состав или лексика языка — это совокупность употребляемых в нем слов, т.е. правильных слов данного языка.

Грамматика — это конечная система правил, определяющих язык.

Грамматика определяет способы построения изменения и сочетания слов.

Синтаксис — система правил, определяющих допустимые конст­рукции языка программирования из букв алфавита.

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

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

Языки программирования, ориентированные на команды процессора и учитывающие его особенности, называют языками низкого уровня. «Низкий уровень» не означает неразвитый, имеется в виду, что операторы этого языка близки к машинному коду и ориентиро­ваны на конкретные команды процессора.

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

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

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

Язык высокого уровня «непонятен» компьютеру, поэтому суще­ствуют специальные программы-трансляторы, переводящие опера­торы языка высокого уровня в машинные коды.

Существуют два типа программ-трансляторов: компилятор и ин­терпретатор.

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

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

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

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

Иерархическая модель строится по следующим правилам:

— каждый модуль может быть связан только с одним модулем верхнего уровня и с несколькими модулями нижнего уровня;

— для каждого модуля нижнего уровня имеется выход в модуль верхнего уровня;

— связи между модулями организуются сверху вниз;

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

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

Модульное программирование позволяет существенно сокра­тить время, необходимое на отладку программ.

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

— любая программа составляется на базе основных алгоритми­ческих структур трех видов: линейного, разветвляющегося, цикли­ческого;

— между этими структурами производится передача управления только вперед — от более высокого уровня иерархии к более низкому;

— запрещается использовать команду переходов «GOTO». Структурное программирование используется в основном для программирования отдельных модулей.

Читайте также:
Название игровой программы для детей на каникулах

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

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

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

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

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

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

Естественность

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

Мобильность

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

Суммарная стоимость использования языка программирования складывается из нескольких составляющих. В нее входят:

• стоимость обучения языку;

• стоимость создания программы;

• стоимость трансляции программы;

• стоимость выполнения программы;

• стоимость сопровождения программы.

Языки программирования или алгоритмические языки классифицируются: по степени их зависимости от вычислительной машины; по ориентации на сферу применения; по специфике организационной структуры языковых конструкций и т.п. (рис. 6.1),

Рис. 6.1. Классификация языков программирования

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

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

— более обоснованно выбрать язык программирования для реализации конкретного проекта;

— разрабатывать более эффективные алгоритмы;

— систематически пополнять набор полезных языковых конструкций;

— ускорить изучение новых языков программирования;

— использовать полученные знания как методологическую основу для разработки новых языков программирования;

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

Все эти языки называются еще и формальными. Нас более всего интересуют алгоритмические языки, к которым относятся все известные языки программирования.

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

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

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

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

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

Большинство производственных задач решают с помощью программ, написанных на процедурно — ориентированных языках. Средства этих языков позволяют наиболее просто описать часто встречающиеся фрагменты действий в соответствующих задачах. Процедурно-ориентированные языки предполагают знания пользователя в области математических (численных) методов и основ алгоритмизации (базовый язык для научно-технических расчетов ФОРТРАН, БЕЙСИК (персональные ЭВМ — основной), современный ПАСКАЛЬ).

В процессе развития созданы многоцелевые (универсальные) языки программирования, объединяющие основные средства и возможности многих процедурно — ориентированных языков, например: ПЛ/1 -используемый для решения задач обработки экономической и научно-технической информации, задач управления объектами и т.п.; язык АДА — многоцелевой стандартный язык, способный заменить множество других языков и на длительный период обеспечить разработку и совершенствования программ обеспечения; язык МОДУЛА — объединяет средства и особенности. машинно-ориентированных и процедурно — ориентированных языков; включает средства для написания подпрограмм управления устройствами, управления потоками сообщений, для чего традиционно использовались языки ассемблерного типа.

Для пользователей, не имеющих специальной подготовки, но нуждающихся в оперативном использовании ЭВМ для решения стереотипных задач, разрабатываются специальные проблемно — ориентированные языки (непроцедурные), которые не требуют подробной записи алгоритма решения задачи. На таком языке лишь формулируется задача и указывается последовательность подзадач из готового набора с указанием исходных данных и форм требуемых документов. Специальные средства программы-генераторы из готовых блоков автоматически формируют программу для решения поставленной задачи. Эти языки ещё более высокого уровня, т.е. удалены от машины более, чем процедурно-ориентируемые языки. К ним относятся языки для задания и обработки таблиц данных при решении экономических задач, а также языки моделирования сложных систем СИМУЛА, НЕДИС и другие (СИМСКРИПТ).

Граница между проблемно — и процедурно — ориентированными языками очерчена не очень четко (условно) — ЛИСП, ПРОЛОГ.

Источник: studopedia.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru