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

Обновлено: 03.07.2024

Интегрированные среды разработки IDE ( англ. Integrated development environment) были созданы для того, чтобы максимизировать производительность программиста благодаря тесно связанным компонентам с простым пользовательским интерфейсом. Это позволяет разработчику сделать меньше действий для переключения различных режимов, в отличие от дискретных программ разработки. Однако, так как интегрированные среды разработки являются сложным программным комплексом, то лишь после долгого процесса обучения среда разработки сможет качественно ускорить процесс разработки программного обеспечения.

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

Dartmouth BASIC был первым языком, который был создан с IDE, и был также первым, который был разработан для использования в консоли или терминале. Эта IDE (часть Dartmouth Time Sharing System) управлялась при помощи команд, поэтому существенно отличалась от более поздних, управляемых с помощью меню и горячих клавиш, и тем более графических IDE, распространённых в XXI веке. Однако она позволяла редактировать исходный код, управлять файлами, компилировать, отлаживать и выполнять программы способом, принципиально подобным современным IDE.

Maestro I — продукт от Softlab Munich, был первой в мире интегрированной средой разработки для программного обеспечения в 1975 г. и, возможно, мировым лидером в этой рыночной нише в течение 1970-х и 1980-х годов.

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

Начиная с 1980-х годов произошло бурное развитие и разнообразие интегрированных сред.

Одной из первых интегрированных сред, которая была качественная, недорогая и с быстрым компилятором стала среда Turbo Pascal фирмы Borland, руководителем разработки которой в середине 1980-х гг. стал Филипп Кан, ученик Никлауса Вирта.

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

Интегрированные среды

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

Среда разработки программного обеспечения (ПО) — совокупность программных средств, используемая программистами для разработки программного обеспечения .

Простая среда разработки включает в себя:

· средства автоматизации сборки,

Когда эти компоненты собраны в единый программный комплекс, говорят об интегрированной среде разработки .

Интегрированная среда разработки , IDE (англ. IDE, Integrated Development Environment или Integrated Debugging Environment ) — система программных средств, используемая программистами для разработки программного обеспечения (ПО). Такая среда представлена одной программой, не выходя из которой можно производить весь цикл разработки.

В состав комплекса кроме перечисленных выше компонент могут входить

· средства управления проектами

· инструменты для упрощения разработки интерфейса пользователя

· стандартные заготовки («мастера»), упрощающие разработку стандартных задач

Современные среды разработки, поддерживающие объектно-ориентированную разработку ПО, также включают

· диаграмму иерархии классов

Обычно IDE ориентирована на определенный язык программирования, предоставляя набор функций, который наиболее близко соответствует парадигмам этого языка программирования. Однако, есть некоторые IDE с поддержкой нескольких языков, такие как Eclipse, ActiveState Komodo, последние версии NetBeans, Microsoft Visual Studio, WinDev и Xcode

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

Пример задачи в интегрированной среде:

Вывести привет мир!


Интегрированные среды разработки также часто поддерживают пометки в комментариях в исходном тексте программ, отмечающие места, требующие дальнейшего внимания или предполагающие внесение изменений, такие как TODO. В дальнейшем эти пометки могут выделяться редакторами (напр. vim, emacs, встроенный редактор Visual Studio) или использоваться для организации совместной работы с построением тегов и задач (например, в IntelliJ). Использование комментариев с TODO так же является стандартом оформления кода на Object Pascal, Delphi. Microsoft в руководстве по Visual Studio рекомендует использовать тег TODO (наравне с HACK, UNDONE) для следующих пометок:

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

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

Строго говоря, интегрированные среды разработки не относятся к числу средств отладки. Отладка – лишь одно из свойств интегрированных сред, которые представляют собой основу любой визуальной среды разработки.

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

1. Исходный текст набирается при помощи какого-либо текстового редактора.

2. По завершении набора, работа с текстовым редактором прекращается и запускается кросс компилятор.

3. Как правило, вновь написанная программа содержит синтаксические ошибки, и компилятор сообщает о них на консоль оператора.

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

Интегрированные среды (оболочки) разработки (Integrated Development Environment, IDE) позволяют избежать большого объема однообразных действий и тем самым существенно повысить эффективность процесса разработки и отладки позволяют, то есть они являются RAD-средами различной степени автоматизации процесса программирования.

Рассмотрим по подробнее основные компоненты интегрированных сред.

Основные компоненты интегрированных сред

Как говорилось выше, простая среда разработки включает в себя:

· средства автоматизации сборки,

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

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

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

Виды текстовых редакторов:

· Построчный (строковый) текстовый редактор ( англ. line editor) работает с текстом как последовательностью пронумерованных строк, выполняя операции над текстом в указанных строках. Примером такого редактора может быть edlin, входивший в состав MS-DOS .

· Контекстный (строковый) редактор ( англ. context editor), примером которого может быть ECCE ( англ. Edinburgh Compatible Context Editor), выполняет операции над текстом в текущей позиции.

· Экранный текстовый редактор позволяет пользователю перемещать курсор в тексте с помощью клавиш или других устройств ввода.

2)Компилятор — программа , выполняющая компиляцию.

Компилировать — проводить трансляцию машинной программы с объектно-ориентированного языка на машинно-ориентированный язык.

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

Интерпретатор — программа (разновидность транслятора ), выполняющая интерпретацию.

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

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

Типы интерпретаторов:

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

· Интерпретатор компилирующего типа — это система из компилятора , переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код , и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина ). Достоинством таких систем является большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе). Недостатки — большее требование к ресурсам и требование на корректность исходного кода. Применяется в таких языках, как Java и др., а также в различных СУБД .

3)Автоматизация сборки — этап написания скриптов или автоматизация широкого спектра задач, применяемого разработчиками в их повседневной деятельности. Включает в себя такие действия, как:

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

4)Отладчик (дебаггер, англ. debugger) — компьютерная программа , предназначенная для поиска ошибок в других программах , ядрах операционных систем, SQL-запросах и других видах кода. Отладчик позволяет выполнять трассировку , отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия остановки и т.д.

Основные функции IDE

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

· отладки программного обеспечения

Цель среды разработки заключается в абстрагировании конфигурации, необходимой, чтобы объединить утилиты командной строки в одном модуле, который позволит уменьшить время, чтобы изучить язык, и повысить производительность разработчика. Также считается, что трудная интеграция задач разработки может далее повысить производительность. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках. В то время как большинство современных IDE являются графическими, они использовались еще до того, как появились системы управления окнами (которые реализованы в Microsoft Windows или X11 для *nix-систем). Они были основаны на тексте, используя функциональные клавиши или горячие клавиши, чтобы выполнить различные задачи (например, Turbo Pascal). Использование IDE для разработки программного обеспечения является прямой противоположностью способа, в котором используются несвязанные инструменты, такие как vi (текстовый редактор), GCC (компилятор), и т.п.

Для больших проектов в среду разработки включаются разнородные продукты разных фирм, разных версий. Пример такого набора: файловый менеджер, набор вспомогательных утилит и пакетных файлов, С++ Builder – как IDE , PLSQL Developer – для работы с СУБД Oracle , Cristal Reports – для создания отчетов , StarTeam – для ведения версий и поддержки коллективной работы.

Работа в интегрированной среде дает программисту:

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

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

(1)Обязательным критерием качества программных систем является .

(1)Способ записи программ, допускающий их непосредственное выполнение на ЭВМ. называется

функциональным языком программирования

логическим языком программирования

процедурным языком программирования

(1)На этапе отладки программы

строится математическая модель решаемой задачи

определяется состав входных данных

выполняется анализ физических характеристик

(1)Типы входных и выходных данных определяются на этапе.

тестирования и отладки

(1)Если задан тип данных, то известной является информация о

количестве обращений к данным

(1)Какая информация известна, если задан тип данных?

количество обращений к данным

количество записей данных

(1)Вид хранимой информации определяет.

связи между данными

вложенность структур данных

устойчивость структур данных

(1)Целочисленный тип является типом данных

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




тестированием «черного ящика»

определением белого шума

тестированием «белого ящика»

(1)Основной целью структурного программирования является. М569

организация программного обеспечения с максимальными взаимосвязями между его модулями

решение задач, для которых нет явного алгоритма решения

исключение использования подпрограмм

(1)Основой метода структурного программирования являются.

а) использование композиции двух базовых элементов - ветвления и
циклической структур

б) использование большого количества подпрограмм

в) принцип модульности разработки сложных программ

д) использование композиции трех базовых элементов - линейной, ветвления и циклической структур

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

(1)Структурное программирование по-другому называют программированием без.

(1)Укажите структуры, которые не допускается использовать в программе при структурном программировании

Последовательное выполнение двух и более операций

(1)Стиль, вычисление в котором представляет собой вывод некоторого целевого утверждения называется программированием

(1)Уменьшение объема кода программ связано с использованием программирования.

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

(1)К концепции объектно-ориентированного программирования НЕ относится

(1)В основе абстракции объектно-ориентированного подхода лежит понятие.

(1)Объектно-ориентированный подход к программированию использует следующие базовые понятия.

е) метод обработки

з) класс объектов

(1)Объект связан с классом в терминах ОБЪЕКТНО-ориентированного программирования в следующей нотации

объект не является наследником класса

объект и класс связаны через общие функции

совокупность классов образует объект

(1)Объектно-ориентированными языками являются.

(1)Объектно-ориентированным языком, в котором имеется возможность множественного наследования, является.

(1)Интегрированная система программирования включает компонент для перевода исходного текста программы в машинный код. который называется .

(1)Интегрированная система программирования включает компонент для создания исходного текста программы (исходного кода), который называется .

(1) Рекурсия использует.

удаление подпрограммой самой себя

заражение подпрограммой самой себя

размножение подпрограммой самой себя

(1)Какая структура данных больше подходит для реализации рекурсии

(1)Какой алгоритм сортировки массива относится к рекурсивным:

сортировка методом пузырька

сортировка простыми вставками

На рис. в виде дерева рекурсии представлен фрагмент алгоритма F(5)

поиска простых чисел

задачи о ближайших точках

f(xl xn .0) = a(xl xn). f(xl xn.y+1) = h(xl xn ,y, f(xl xn0)) определяет

набор переменных, начинающихся с одной буквы

ограниченная апострофами последовательность любых символов

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

(1)Массив относится к типам данных

(1)Массив относится к.

(1)Элементы массива упорядочены.

по возрастанию значений элементов

по частотным характеристикам

(1)Задан одномерный массив X1. Х2 XN. Фрагмент алгоритма

количество нулевых элементов

количество положительных элементов

номер последнего нулевого элемента

номер первого нулевого элемента

(1)Ветвление обязательно должно содержать .

оператор, выполняемый в случае истинности условия и оператор, выполняемый в случае ложности условия

оператор, выполняемый в случае ложности условия

(1)Элементами оператора ветвления являются.

б) переход по условию

(1)Оператор ветвления на блок схеме отображается в виде


(1)В блок схеме, внутри данного символа можно написать:

(1)Многократное исполнение одного и того же участка программы называется .

обращением к подпрограмме

(1)На рисунке представлен фрагмент алгоритма, имеющий структуру.


циклическую с постусловием

циклическую с предусловием

(1)Блок-схемой цикла с постусловием является .





(1)При выполнении подпрограммы

Aлг пpl (арг цел X. рез цел F) Нач

to F := 2 иначе F := F (X - 2) + 3 все кон

с параметрами (2. А) значение переменной А будет равно

(1)При выполнении подпрограммы

Air пpl (арг цел X. рез цел F) Нач

to F := 2 иначе F := F (X - 2) + 3 все кон

с параметрами (2. А) значение переменной А будет равно

(1)При выполнении подпрограммы

Air пpl (арг цел X. рез цел F) Нач

toF := 2 иначе F := F (X - 1) + 3 все кон

с параметрами (2. А) значение переменной А будет равно

(1)В результате работы алгоритма

переменная Y приняла значение 14. Укажите число, которое являлось значением переменной X до начала работы алгоритма.

(1)В результате работы алгоритма

переменная Y приняла значение 10. Укажите число, которое являлось значением переменной X до начала работы алгоритма.


(1)В результате работы фрагмента блок-схемы алгоритма

а и b примут следующие значения .

(1)При каких начальных значениях а и b алгоритм на блок-схеме закончит работу (a mod 2 - операция взятия числа а по модулю 2).


(1)При каких начальных значениях переменных алгоритм на блок-схеме закончит работу (a mod 2 = остаток от деления а на 2).


(1)В результате работы фрагмента алгоритма


элементы массива A1, А2, A3, А4 при N=4 получат, соответственно, значения .

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Loading

Copy raw contents

Copy raw contents

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

Эволюция языков программирования

В 1950-х гг. появляются первые средства автоматизации программирования — языки Автокоды. Позднее для языков этого уровня стало применяться название «Ассемблеры».

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

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

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

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

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

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

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

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

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

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

Почитать для саморазвития.
Первыми популярными языками высокого уровня, появившимися в 1950-х гг., были Фортран, Кобол (в США) и Алгол (в Европе). Языки Фортран и Алгол были ориентированы на научно-технические расчеты математического характера. Кобол — язык для программирования экономических задач. В Коболе по сравнению с двумя другими названными языками слабее развиты математические средства, но зато хорошо развиты средства обработки текстов, организация вывода данных в форме требуемого документа. Для первых языков высокого уровня предметная ориентация языков была характерной чертой.
Большое количество языков программирования появилось в 1960—1970-х гг. А за всю историю ЭВМ их было создано более тысячи. Но распространились, выдержали испытание временем немногие. В 1965 г. в Дартмутском университете был разработан язык Бейсик. По замыслу авторов это простой язык, легко изучаемый, предназначенный для программирования несложных расчетных задач. Наибольшее распространение Бейсик получил на микроЭВМ и персональных компьютерах. На некоторых моделях школьных компьютеров программировать можно только на Бейсике.
Однако Бейсик — неструктурный язык, и потому он плохо подходит для обучения качественному программированию. Справедливости ради следует заметить, что последние версии Бейсика для ПК (например, QBasic) стали более структурными и по своим изобразительным возможностям приближаются к таким языкам, как Паскаль.
В эпоху ЭВМ третьего поколения получил большое распространение язык PL/1

Значительным событием в истории языков программирования стало создание в 1971 г. языка Паскаль. Его автор — швейцарский профессор Никлаус Вирт — разрабатывал Паскаль как учебный язык структурного программирования.

Наибольший успех в распространении этого языка обеспечили персональные компьютеры. Фирма Borland International, Inc (США) разработала систему программирования Турбо Паскаль для ПК (позднее, с добавлением поддержки ООП, язык стал называться Object Pascal, а интегрированная система программирования - Delphi).

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

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

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

Еще немного для саморазвития.
Модула-2 — это еще один язык, предложенный Н.Виртом, основанный на языке Паскаль и содержащий средства для создания больших программ.
Компьютеры будущего, пятого поколения называют машинами «искусственного интеллекта». Но прототипы языков для этих машин были созданы существенно раньше их физического появления. Это языки ЛИСП и Пролог.
ЛИСП появился в 1965 г. Язык ЛИСП основан на понятии рекурсивно определенных функций. А поскольку доказано, что любой алгоритм может быть описан с помощью некоторого набора рекурсивных функций, то ЛИСП, по сути, является универсальным языком. С его помощью на компьютере можно моделировать достаточно сложные процессы, в частности интеллектуальную деятельность людей.
Язык Пролог разработан во Франции в 1972 г. также для решения проблемы «искусственного интеллекта». Пролог позволяет в формальном виде описывать различные утверждения, логику рассуждений и заставляет компьютер давать ответы на заданные вопросы.

Реализовать тот или иной язык программирования на ЭВМ — это значит создать транслятор с этого языка для данной ЭВМ (тут имеется в виду не конкретный экземпляр ЭВМ, а архитектура процессора и поддерживаемая им система команд).

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

Перевод можно организовать двумя способами:

  • полный предварительный перевод — лектор заранее передает текст выступления переводчику, тот записывает перевод, размножает его и раздает слушателям (после чего лектор может и не выступать);
  • синхронный перевод — лектор читает доклад, переводчик одновременно с ним слово в слово переводит выступление.

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

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

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

Все это было востребовано в эпоху господства Wintel (Windows + Intel), т.е. одна ОС, одна платформа (Apple и сейчас остается нишевым продуктом), но в последние годы значительную часть рынка отвоевал Android (около 40% на 2018 год) и постепенно набирает популярность Linux, а на рынке процессоров теперь господствует архитектура ARM.

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

А теперь посмотрим на TOP-5 самых востребованых языков программирования (критерии оценки могут быть разными, как и получившийся список, но эти чаще всего встречаются):

Также в современной разработке скоростью выполнения программы пренебрегают в пользу скорости разработки. Порог вхождения в разработку в этих языках в целом намного ниже, чем в Си или Паскаль.
Например, на PHP плюются все разработчики, но из-за чрезвычаной простоты языка сайты, разработанные на нем занимают до 80%.

Понятие системы программирования

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

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

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

Многие системы программирования включают также средства RAD (RapidApplication Development – быстрая разработка приложений), например, простой и удобный способ разработки графического интерфейса.

Классификация систем программирования

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

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

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

Отладчик в системе программирования

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

  • узнавать текущие значения переменных;
  • выяснять, по какому пути выполнялась программа.

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

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

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

Популярные системы программирования:

Хочу обратить внимание на Visual Studio Code — активно развивающийся, бесплатный редактор исходного кода, разработанный Microsoft для Windows, Linux и macOS. Позиционируется как «лёгкий» редактор кода для кроссплатформенной разработки веб- и облачных приложений. Включает в себя отладчик, инструменты для работы с Git, подсветку синтаксиса, IntelliSense и средства для рефакторинга. Т.е. это не полноценный IDE, но вполне подходит для разработки на PHP, JS, имеет систему плагинов, т.е. может быть добавлена поддержка и других языков.

Исходный, объектный и загрузочный модули.

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

Схема обработки прикладных программ в среде системы программирования

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

Интегрированная среда программирования.

Устанавливать нужно только "Классические приложения .NET"

Презентация на тему: " Системы программирования Средства создания программ Интегрированные системы программированияИнтегрированные системы программирования Среды быстрого проектирования." — Транскрипт:

1 Системы программирования Средства создания программ Интегрированные системы программированияИнтегрированные системы программирования Среды быстрого проектирования Вопросы по теме

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

12 Ответ на вопрос1 Интегрированная система программирования включает компонент для набора исходного текста программы (исходного кода), который называется. редактором связей отладчиком конструктором текстовым редактором библиотекой далеедалее

13 Вопрос 2 Интегрированная система программирования включает компонент для перевода исходного текста программы в машинный код, который называется. текстовым редактором редактором связей построителем кода компилятором Далее Далее

14 Ответ на вопрос2 Интегрированная система программирования включает компонент для перевода исходного текста программы в машинный код, который называется. текстовым редактором редактором связей построителем кода компилятором ДалееДалее

15 Вопрос 3 Компилятор отличается от интерпретатора тем, что… создает объектный код проверяет синтаксис исходной программы анализирует текст исходной программы проверяет правильность семантики исходной программы Далее Далее

16 Ответ на вопрос3 Компилятор отличается от интерпретатора тем, что… создает объектный код проверяет синтаксис исходной программы анализирует текст исходной программы проверяет правильность семантики исходной программы Далее Далее

17 Вопрос 4 Процесс трансляции всей программы без ее выполнения осуществляет … драйвер ассемблер компилятор интерпретатор Далее Далее

18 Ответ на вопрос 4 Процесс трансляции всей программы без ее выполнения осуществляет … драйвер ассемблер компилятор интерпретатор Далее Далее

19 Вопрос 5 Система программирования предоставляет программисту возможность … анализа существующих программных продуктов по соответствующей тематике автоматической сборки разработанных модулей в единый проект автоматического построения математической модели исходя из постановки задачи выбора языка программирования ДалееДалее

20 Ответ на вопрос 5 Система программирования предоставляет программисту возможность … анализа существующих программных продуктов по соответствующей тематике автоматической сборки разработанных модулей в единый проект автоматического построения математической модели исходя из постановки задачи выбора языка программирования ДалееДалее

21 Вопрос 6 Пошаговую трансляцию и немедленное выполнение операторов исходной программы осуществляет … интерпретатор ассемблер компилятор драйвер Далее Далее

22 Ответ на вопрос 6 Пошаговую трансляцию и немедленное выполнение операторов исходной программы осуществляет … интерпретатор ассемблер компилятор драйвер Далее Далее

23 Вопрос 7 И компилятор, и интерпретатор,- оба выполняют … непосредственное исполнение исходной программы создание объектного кода создание программы на языке высокого уровня анализ текста исходной программы Далее Далее

24 Ответ на вопрос 7 И компилятор, и интерпретатор,- оба выполняют … непосредственное исполнение исходной программы создание объектного кода создание программы на языке высокого уровня анализ текста исходной программы Далее Далее

25 Вопрос 8 Программа, которая объединяет объектные модули отдельных частей программы и добавляет к ним стандартные модули подпрограмм стандартных функций, в единую программу, готовую к исполнению, называется … библиотекой редактором связей текстовым редактором отладчиком Далее Далее

26 Ответ на вопрос 8 Программа, которая объединяет объектные модули отдельных частей программы и добавляет к ним стандартные модули подпрограмм стандартных функций, в единую программу, готовую к исполнению, называется … библиотекой редактором связей текстовым редактором отладчиком Далее Далее

27 Вопрос 9 Системами программирования являются: a)Ms Dos б)Java в)Adobe PhotoShop г)Visual C++ д)Borland Delphi а,г в,д а,в б,г,д ДалееДалее

28 Ответ на вопрос 9 Системами программирования являются: a)Ms Dos б)Java в)Adobe PhotoShop г)Visual C++ д)Borland Delphi а,г в,д а,в б,г,д ДалееДалее

Читайте также: