Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ ПРОГРАММ (Понятие компилятора и интерпретатора)

Содержание:

Введение

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

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

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

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

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

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

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

Оценивая качество и эффективность операционной среды необходимо обращать внимание на интерфейсы инструментальных средств. . Стандарт определяет оконный интерфейс, правила размещения в окнах элементов управления, назначение горячих клавиш и даже рекомендует цветовые схемы интерфейса. Конечно, в рамках этого стандарта можно реализовать большое количество разнообразных интерфейсов. Развитие и нововведения в интерфейсах можно проследить на линейках продуктов типа MS Office. Одним из важных и необходимых свойств среды является возможность настройки. К интерфейсу также относится замечание об избыточности и необходимости минимизации возможностей.

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

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

- текстовой редактор;

-компилятор и/ или интерпретатор;

-средства автоматизации сборки;

-отладчик.

Интегрированная среда разработки иногда содержит средства для объединения с системами управлениями разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки включают также браузер классов, инспектор объектов и диаграмму иерархии классов- для использования при объектно-ориентированной разработке программного обеспечения. Существуют интегрированные среды разработки . предназначенные для нескольких языков программирования- такие, как Eclpise, NetBeans, Embarcadero RAD Studio, Qt Creator или Visual Studio,но обычно интегрированные среды разработки предназначается для одного определенного языка программирования.

1.Понятие текстового редактора, принципы работы.

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

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

2.Понятие компилятора и интерпретатора.

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

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

Компиляторы и интерпретаторы в чем отличие и сходство.

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

Схема работы интерпретатора:

[1] исходный код программы->[2]интерпретатор->[3]OC->[4]результат

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

Схема работы компилятора:

[1] исходный код программы->[2]компилятор->[3]OC->[4]объектный код->[5]результат

При использовании программы 1-ый и 2-ой пункты этой схемы «откидывается». Откомпилированные компилятором программы работают заметно быстрее, так как не требуется делать повторный анализ и преобразование исходного кода в код понятный компьютеру.

3. Средства управления версиями.

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

Большинство интегрированных сред разработки используют централизованную модель, когда имеется единое хранилище документов, контролируемое специальным сервером, который выполняет большую часть функций по управлению версиями. Пользователь, работающий с файлами , должен сначала получить нужную ему версию файла из хранилища ; обычно создаётся локальная копия файла , так называемая «рабочая копия». Может быть получена последняя версия или любая из предыдущих, выбранная по номеру версии или дате создания, иногда и по другим признакам. После того, как в документ внесены нужные изменения, новая версия помещается в хранилище. В отличие от простого сохранения файла, предыдущая версия не стирается, а тоже остаётся в хранилище и может быть получена оттуда в любое время. Сервер может использовать дельта-компрессию – способ хранения документов, при котором сохраняются только изменения между последовательными версиями, что позволяет уменьшить объём хранимых данных.

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

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

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

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

- в создании разных вариантов одного документа-ветки, с общей историей изменений до точки ветвления и с разными – после неё.

- возможности узнать, кто и когда добавил или изменил конкретный набор строк в файле;

- ведении журнала изменений, куда пользователи могут записывать пояснения о том, что и почему они изменили в данной версии;

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

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

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

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

4.Отдадчик. процесс отладки.

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

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

Исходные данные->программа->результаты

Наиболее распространенными отладчиками являются:

-GNU Debugger-отладчик программ от проекта GNU;

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

- Microsoft Visual Studio- среда разработки программного обеспечения, содержащая в себе средства отладки от корпорации Microsoft;

-Dr. Watson- стандартный отладчик Windows, позволяет создавать дампы памяти;

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

-WinDbg- бесплатный отладчик от программы Microsoft;

-SoftICE- низкоуровневый отладчик для операционных систем Windows.

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

Обзор бесплатных IDE - интегрированных сред разработки программ.

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

Особенности программы:

Поддерживаемые языки программирования: Java, JavaFX, PHP, JavaScript, Ruby, Groovy, Python и C/C++, а также все языки разметки: HTML, XML и стили CSS.

Поддерживает технологии: J2SE, J2EE, J2ME, JavaFX SDK, PHP Zend framework, UML, SOA, Ajax, Ruby on Rails, Groovy and Grails.

NetBeans IDE является платформой для построения десктоп приложений с функциональным пользовательским интерфейсом, т.к. представляет из себя фреймворк к Java библиотеке Swing. Это сэкономит массу времени тому, кто не поленится ознакомиться с особенностями программирования на платформе NetBeans.

NetBeans IDE является платформой для создания плагинов и расширения своей функциональности.

Основные функции: рефакторинг, профилирование, работа с CVS и SVN, работа с удалённым сервером через FTP, визуальный редактор пользовательских интерфейсов, подсветка синтаксических конструкций, автодополнение, показ справки на лету, возможность использования готовых шаблонов кода, интеграция с серверами - автоматическое развёртывание приложений, управление сервером и т.д.

Расширенные возможности по работе с базами данных - встроенный клиент к базам данных - MySQL, Postgres, Oracle и др., редактор запросов SQL.

Eclipse - бесплатная программная платформа с открытым исходным кодом, контролируется организацией Eclipse Foundation. Написана на языке программирования Java и основной целью её создания является повышение продуктивности процесса разработки программного обеспечения.

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

Aptana Studio - бесплатная IDE, профессиональная среда разработки Web 2.0 приложений.

Используется для создания веб приложений с поддержкой всех современных технологий - HTML5, CSS3, JavaScript, Ruby, Rails, PHP и Python.

Основные возможности Aptana Studio:

Имеет мощные функции по работе с кодом HTML, CSS, JavaScript, PHP, Ruby - редактирование, просмотр структуры кода, мгновенный предпросмотр в распространённых моделях браузеров.

Работа с использованием последних спецификаций HTML 5 и CSS3. Разработчику предоставляется подробная информация о поддержке каждого элемента в распространённых веб-браузерах.

Встроенный отладчик позволяет устанавливать точки останова, просматривать значения переменных и контролировать исполнение программы. Также в наличии интегрированный Ruby and Rails отладчик.

Мастер развертывания приложений позволяет работать с удалёнными проектами с использованием FTP, SFTP, FTPS протоколов.

Поддержка совместной работы над проектами. Поддержка работы из командной строки.

Расширенные возможности по настройке IDE, возможность создания пользовательских скриптов.

Подключаемые модули для расширения функциональности IDE.

Dev-C++ - интегрированная среда разработки на C и C++, полнофункциональная C++ IDE.

Возможности Dev C++:

Удобный редактор с подсветкой синтаксиса, нумерацией строк, автоотступами и т.д.

Возможность автозавершения кода для удобства работы и повышения производительности.

Заготовки кода и шаблоны для вставки.Использование закладок в редакторе для быстрого перемещения по коду.

Экспорт исходных файлов или целого проекта в HTML или RTF для публикации исходных кодов на своём веб сайте.Встроенный менеджер проектов. Импорт проектов из MS Visual C++.

Возможность настройки ассоциации файлов по расширению - c, cpp, h и т.д.

В навигаторе классов два варианта обзора - просмотр функций, классов и их членов как для всего проекта, так и для текущего редактируемого файла.

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

Используется Mingw GCC компилятор, может работать с любым компилятором GCC.

Воможность отладки проекта - встроенный дебаггер GDB.

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

Существует портабельная версия программы, не требующая установки.

Мультиязычный пользовательский интерфейс с поддержкой русского языка.

Рассмотрим пользовательский интерфейс наиболее новых интегрированных сред разработки программ.

Данный текст содержит краткий обзор особенностей PascalABC.NET.

PascalABC.NET – легковесная и мощная среда разработки программ с подробной справочной системой, средствами подсказки по коду, автоформатированием, встроенным отладчиком и встроенным дизайнером форм. Интегрированная среда разработки PascalABC.NET ориентирована на создание проектов малой и средней сложности, а также на обучение современному программированию.Опирается на платформу Microsoft .NET - её языковые возможности и библиотеки, что делает его гибким, эффективным, постоянно развивающимся. Кроме того, можно легко сочетать библиотеки, разработанные на PascalABC.NET и других .NET-языках.

Компилятор генерирует код, выполняющийся так же быстро, как и код на C#, и несколько медленнее, чем код на C++ и Delphi.

PascalABC.NET является представителем линейки современных языков Паскаль вместе с Delphi XE и Oxygene.

Мнение, что язык Паскаль устарел и утрачивает свои позиции, основано на представлении о старом Паскале и старых средах программирования (например, Free Pascal с его несовременной консольной оболочкой и языком Delphi образца 2002 года). К сожалению, масса отечественной улитературы с упорством, достойным лучшего применения, ориентируется на отживший Turbo Pascal с древней консольной оболочкой, бедной графической библиотекой и устаревшими средствами объектно-ориентированного программирования, он расширен современными языковыми возможностями для легкого, компактного и понятного програмирования.

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

Вкладки. Окно вывода.

C:\Users\User\Pictures\sc1c.png

Несколько вкладок. Панель сообщения об ошибках.

C:\Users\User\Pictures\sc2c.png

.

C:\Users\User\Pictures\sc3c.png

Отладчик. Панель локальных переменных. Подсказка при отладке.

C:\Users\User\Pictures\sc4c.png

Краткий обзор особенностей  Delphi - Самая полная среда разработки на Object Pascal и библиотека компонентов для разработки кросс-платформенных нативных приложений с поддержкой облачных сервисов и применением IoT. Она предоставляет мощные компоненты VCL для Windows 10 и обеспечивает разработку на FMX для Windows, Mac и мобильных устройств. Delphi - это ваш выбор для корпоративно-ориентированной разработки. Посмотрите на увеличенный объем памяти для крупных проектов, расширенную поддержку нескольких мониторов, улучшенный инспектор объектов и многое другое. Delphi обеспечивает 5-кратно увеличенную скорость разработки и развертывания на нескольких настольных, мобильных, облачных средах и платформах баз данных, включая 32-разрядные и 64-битные ОС Windows 10.

FireUI позволяет один раз написать код, а затем развертывать его на платформах Windows 10, Android, iOS и OS X..

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

https://www.embarcadero.com/images/old/rad10/radstudioseattleheroshot720.png

Функция FireUI App Previews позволяет просматривать приложения FireMonkey непосредственно на устройствах с IOS, Android, Windows, OSX, в процессе разработки приложений. Изменения, сделанные в дизайнере FMX транслируются в режиме реального времени на подключенные устройства с использованием соответствующих каждому стилей.

https://www.embarcadero.com/images/rad-studio/screenshots/FireUILiveAppPreview_witharrows.png

Интерфейс Microsoft Visual Studio

Последней рассматриваемой ИСР является Microsoft Visual Studio (Microsoft Visual Studio.По сути, Microsoft Visual Studio является линейкой продуктов компании «Майкрософт», включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.

Microsoft Visual Studio включает один или несколько компонентов из следующих: Visual Basic.NET, Visual C++, Visual C#, Visual F#, Microsoft SQL Server, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, Visual Source Safe.

Одним из главных преимуществ Майкрософт Визуал Студия является высокое качество документирования процесса разработки и описания возможных проблем в MSDN Library. Однако наиболее интересная для профессионала часть, посвящённая тонкостям разработки, существует только на английском языке.

Редактирование своего кода.

Создание кода.

Навигация в тексте.

http://i63.fastpic.ru/big/2014/0826/af/19e7aa6818b5b3150dc157d36fa7e9af.png

Также компания «Майкрософт» предлагает бесплатный аналог продукта Visual Studio Express.

Краткий обзор C++Builder.

C++Builder предоставляет быстрый, мощный, современный C++; единый компилятор, единый отладчик, единую IDE, прекрасные библиотеки на четыре платформы и позволяет ускорить разработку, сосредоточиться на своем коде и вывести приложение на финиш.

C ++ Builder включает в себя усовершенствованный компилятор на основе Clang для Windows (32 и 64), IOS, и Android. 

Компилятор.

https://www.embarcadero.com/images/cbuilder/screenshots/modern-c--clang-enhanced-c--compiler.png

Кросс-платформенность

https://www.embarcadero.com/images/cbuilder/screenshots/FireUILiveAppPreview_witharrows.png

Среда IDE и встроенный отладчик

https://www.embarcadero.com/images/cbuilder/screenshots/cb-debugging.png

Настольные приложения – не имеющая равных поддержка нативных элементов управления.

https://www.embarcadero.com/images/cbuilder/screenshots/controls.png

Быстрая разработка. Для любого масштаба разработки

https://www.embarcadero.com/images/cbuilder/screenshots/bcc32c-101-Berlin-screenshot.png

Список используемой литературы.

Дэвид Флэнаган «JavaScript. Подробное руководство» 5е издание 2008

Дейтел Х.М., Дейтел П.ДЖ. «Как программировать на C++»2006, 5-е издание

Панюкова Т.А., Панюков А.В. «Языки и методы программирования» Изд.,Либроком 2015г

Альфред В.Ахо, Моника С.Лам, Рави С., Джеффри Д.Ульман «Компиляторы: принципы, технологии и иструментарий (Книга Дракона)» Изд.,Вильямс 2015

Иванова Г.С. «Основы программирования» Изд., МГТУ имени Н.Э.Баумана

Шакин В.Н. «Базовые средства программирования Visual basic на в среде Visual studio. Net» Изд.,Форум 2015

Емельянов А.А., Сальников Ю.Н., Емельянова Н.З. «Основы программирования для информатиков и инженеров.» Часть 2 (продолжение): « Прикладное программирование в Windows»


Интернет ресурсы:
http://pascalabc.net/

https://www.embarcadero.com/ru/

https://www.visualstudio.com/features/ide-vs

https://netbeans.org/index_ru.html