Для чего нужны инструментальные системы программирования программы
Независимо от того, являетесь ли вы опытным разработчиком или только учитесь программировать, важно знать обо всех новых и уже существующих интегрированных средах разработки . Ниже приведен список 10 наиболее популярных IDE .
Что такое IDE (интегрированная среда разработки) и чем она отличается от текстового редактора?
IDE (интегрированная среда разработки) - это не просто текстовый редактор. В то время как текстовые редакторы для кода, такие как Sublime или Atom , предлагают множество удобных функций, таких как подсветка синтаксиса, настраиваемый интерфейс и расширенные средства навигации, они позволяют только писать код. Для создания функционирующих приложений как минимум нужен компилятор и отладчик.
IDE (integrated development environment) включает в себя эти компоненты, как и ряд других. Некоторые из них поставляются с дополнительными инструментами для автоматизации, тестирования и визуализации процесса разработки. Термин «интегрированная среда разработки» означает, что предоставляется все необходимое для превращения кода в функционирующие приложения.
Ознакомьтесь с приведенным ниже списком функций и недостатков каждой из 10 лучших IDE .
Microsoft Visual Studio
Microsoft Visual Studio - это интегрированная среда разработки , цена которой варьируется от $699 до $2900 . Множество версий этой IDE способны создавать все типы программ, начиная от веб-приложений и заканчивая мобильными приложениями, видеоиграми. Эта линейка программного обеспечения включает в себя множество инструментов для тестирования совместимости. Благодаря своей гибкости Visual Studio является отличным инструментом для студентов и профессионалов.
- Огромная библиотека расширений, которая постоянно увеличивается;
- IntelliSense ;
- Настраиваемая панель и закрепляемые окна;
- Простой рабочий процесс и файловая иерархия;
- Статистика мониторинга производительности в режиме реального времени;
- Инструменты автоматизации;
- Легкий рефакторинг и вставка фрагментов кода;
- Поддержка разделенного экрана;
- Список ошибок, который упрощает отладку;
- Проверка утверждения при развертывании приложений с помощью ClickOnce , Windows Installer или Publish Wizard.
Недостатки : поскольку Visual Studio IDE является супертяжелой , для открытия и запуска приложений требуются значительные ресурсы. Поэтому на некоторых устройствах внесение простых изменений может занять много времени. Для простых задач целесообразно использовать компактный редактор или средство разработки PHP .
Интегрированная среда программирования NetBeans
Бесплатная IDE для C (и многих других языков программирования) с открытым исходным кодом. Подходит для редактирования существующих проектов или создания новых. NetBeans предлагает простой drag-and-drop интерфейс, который поставляется с большим количеством удобных шаблонов проектов. Среда в основном используется для разработки Java приложений, но можно устанавливать пакеты, поддерживающие другие языки.
Поддерживаемые языки программирования: C, C++, C++ 11, Fortran, HTML 5, Java, PHP и другие .
- Интуитивный drag-and-drop интерфейс;
- Динамические и статические библиотеки;
- Интеграция нескольких сессий GNU-отладчика с поддержкой кода;
- Возможность осуществлять удаленное развертывание;
- Совместимость с платформами Windows, Linux, OS X и Solaris;
- Поддержка Qt Toolkit;
- Поддержка Fortran и Assembler;
- Поддержка целого ряда компиляторов, включая CLang / LLVM, Cygwin, GNU, MinGW и Oracle Solaris Studio.
Недостатки: эта бесплатная среда разработки потребляет много памяти, поэтому может работать медленно на некоторых ПК.
PyCharm - лучшая среда разработки для Python
Поддерживаемые языки: AngularJS, Coffee Script, CSS, Cython, HTML, JavaScript, Node.js, Python, TypeScript.
- Совместимость с операционными системами Windows, Linux и Mac OS;
- Поставляется с Django IDE;
- Легко интегрируется с Git, Mercurial и SVN;
- Настраиваемый интерфейс с эмуляцией VIM;
- Отладчики JavaScript, Python и Django;
- Поддержка Google App Engine.
Недостатки: пользователи жалуются, что эта среда разработки Python содержит некоторые ошибки, такие как периодически не работающая функция автоматического заполнения, что может доставить определенные неудобства.
IntelliJ IDEA
Еще одна IDE , разработанная Jet Brains . Она предлагает пользователям бесплатную версию Community Edition , 30-дневную бесплатную ознакомительную версию Ultimate Edition и годовую подписку на версию Ultimate Edition за $533 - $693 . IntelliJ IDEA поддерживает Java 8 и Java EE 7 , обладает обширным инструментарием для разработки мобильных приложений и корпоративных технологий для различных платформ. Если говорить о цене, IntelliJ является прекрасным вариантом из-за огромного списка функций.
Поддерживаемые языки программирования: AngularJS, CoffeeScript, HTML, JavaScript, LESS, Node JS, PHP, Python, Ruby, Sass, TypeScript и другие.
- Расширенный редактор баз данных и дизайнер UML ;
- Поддержка нескольких систем сборки;
- Пользовательский интерфейс тестового запуска приложений;
- Интеграция с Git ;
- Поддержка Google App Engine , Grails , GWT , Hibernate , Java EE , OSGi , Play , Spring , Struts и других;
- Встроенные средства развертывания и отладки для большинства серверов приложений;
- Интеллектуальные текстовые редакторы для HTML , CSS и Java ;
- Интегрированный контроль версий;
- AIR Mobile с поддержкой Android и iOS .
Недостатки: эта среда разработки JavaScript требует времени и усилий на изучение, поэтому может оказаться не лучшим вариантом для начинающих. В ней есть много сочетаний горячих клавиш, которые нужно просто запомнить. Некоторые пользователи жалуются на неуклюжий интерфейс.
Eclipse
Среда программирования C (поддерживающая и многие другие языки программирования) с открытым исходным кодом. Этот инструмент может оказаться полезен, как для новичков, так и для профессионалов. Первоначально создаваемый как среда для Java-разработки сегодня Eclipse имеет широкий диапазон возможностей благодаря большому количеству плагинов и расширений. Помимо средств отладки и поддержки Git / CVS , стандартная версия Eclipse поставляется с инструментами Java и Plugin Development Tooling . Если вам этого недостаточно, доступно много других пакетов: инструменты для построения диаграмм, моделирования, составления отчетов, тестирования и создания графических интерфейсов. Клиент Marketplace Eclipse открывает пользователям доступ к хранилищу плагинов и информации.
Поддерживаемые языки: C, C++, Java, Perl, PHP, Python, Ruby и другие.
- Множество пакетных решений, обеспечивающих многоязычную поддержку;
- Улучшения Java IDE , такие как иерархические представления вложенных проектов;
- Интерфейс, ориентированный на задачи, включая уведомления в системном трее;
- Автоматическое создание отчетов об ошибках;
- Параметры инструментария для проектов JEE ;
- Интеграция с JUnit .
Недостатки: многие параметры этой среды разработки могут запугать новичков. Eclipse не обладает всеми теми функциями, что и IntelliJ IDEA , но является IDE с открытым исходным кодом.
Code::Blocks
Еще одна среда разработки C с открытым исходным кодом. Гибкая IDE , которая стабильно работает на всех платформах, поэтому она отлично подходит для разработчиков, которые часто переключаются между рабочими пространствами. Встроенный фреймворк позволяет настраивать эту IDE под свои потребности.
Поддерживаемые языки: C, C++, Fortran .
- Простой интерфейс с вкладками открытых файлов;
- Совместимость с Linux , Mac и Windows ;
- Написана на C++ ;
- Не требует интерпретируемых или проприетарных языков программирования;
- Множество встроенных и настраиваемых плагинов;
- Поддерживает несколько компиляторов, включая GCC, MSVC ++ , clang и другие;
- Отладчик с поддержкой контрольных точек;
- Текстовый редактор с подсветкой синтаксиса и функцией автоматического заполнения;
- Настраиваемые внешние инструменты;
- Простые средства управления задачами, идеально подходящие для совместной работы.
Недостатки: относительно компактная IDE для СИ, поэтому она не подходит для крупных проектов. Это отличный инструмент для новичков, но продвинутые программисты могут быть разочарованы ее ограничениями.
Aptana Studio 3
Самая мощная из IDE с открытым исходным кодом. Aptana Studio 3 значительно улучшена по сравнению с предыдущими версиями. Поддерживает большинство спецификаций браузеров. Поэтому пользователи этой IDE могут с ее помощью быстро разрабатывать, тестировать и развертывать веб-приложения.
Поддерживаемые языки: HTML5, CSS3, JavaScript, Ruby, Rails, PHP и Python .
- Подсказки для CSS , HTML , JavaScript , PHP и Ruby ;
- Мастер развертывания с простой настройкой и несколькими протоколами, включая Capistrano , FTP , FTPS и SFTP ;
- Возможность автоматической установки созданных приложений Ruby и Rails на серверы хостинга;
- Интегрированные отладчики для Ruby и Rails и JavaScript ;
- Интеграция с Git ;
- Простой доступ к терминалу командной строки с сотнями команд;
- Строковые пользовательские команды для расширения возможностей.
Недостатки: есть проблемы со стабильностью, и она работает медленно. Поэтому профессиональные разработчики могут предпочесть более мощную HTML среду разработки.
Komodo
Предлагает бесплатную 21-дневную ознакомительную версию, полная версия стоит $99 – $1615 в зависимости от редакции и лицензии. Komodo поддерживает большинство основных языков программирования. Удобный интерфейс позволяет осуществлять расширенное редактирование, а небольшие полезные функции, такие как проверка синтаксиса и одноступенчатая отладка, делают Komodo одной из самых популярных IDE для веб и мобильной разработки.
Поддерживаемые языки: CSS, Go, JavaScript, HTML, NodeJS, Perl, PHP, Python, Ruby, Tcl и другие.
- Настраиваемый многооконный интерфейс;
- Интеграция контроля версий для Bazaar , CVS , Git , Mercurial , Perforce и Subversion ;
- Профилирование кода Python и PHP ;
- Возможность развертывания в облаке благодаря Stackato PaaS ;
- Графическая отладка для NodeJS , Perl , PHP , Python , Ruby и Tcl ;
- Автоматическое заполнение и рефакторинг;
- Стабильная производительность на платформах Mac , Linux и Windows
Недостатки: бесплатная версия среды разработки программного обеспечения не включает в себя все функции. В то же время премиум версия явно стоит своих денег.
RubyMine
Еще одна премиум IDE , разработанная компанией Jet Brains . Предлагается 30-дневная бесплатная ознакомительная версия, полная версия стоит $210 - $687 в год. Удобная навигация, логичная организация рабочего процесса и совместимость с большинством платформ делают RubyMine одним из популярных инструментов для разработчиков.
Поддерживаемые языки: CoffeeScript, CSS, HAML, HTML, JavaScript, LESS, Ruby и Rails, Ruby и SASS.
- Сниппеты кода, автоматическое заполнение и автоматический рефакторинг;
- Дерево проектов, которое позволяет быстро анализировать код;
- Схема модели Rails ;
- Просмотр проекта Rails ;
- RubyMotion поддерживает разработку под iOS ;
- Поддержка стека включает в себя Bundler , pik , rbenv , RVM и другие;
- Отладчики JavaScript , CoffeeScript и Ruby ;
- Интеграция с CVS , Git , Mercurial , Perforce и Subversion .
Недостатки среды разработки: чтобы RubyMine работала бесперебойно, компьютеру требуется не менее 4 ГБ оперативной памяти. Некоторые пользователи также жалуются на отсутствие опций настройки GUI .
Xcode
Набор инструментов для создания приложений под iPad , iPhone и Mac . Интеграция с Cocoa Touch делает работу в среде Apple простой, вы можете включать такие сервисы, как Game Center или Passbook , одним кликом мыши. Встроенная интеграция с сайтом разработчика помогает создавать полнофункциональные приложения « на лету ».
Поддерживаемые языки: AppleScript, C, C++, Java, Objective-C.
- Элементы пользовательского интерфейса можно легко связать с кодом реализации;
- Компилятор Apple LLVM сканирует код и предоставляет рекомендации по решению проблем производительности;
- Панель навигации обеспечивает быстрое перемещение между разделами;
- Interface Builder позволяет создавать прототипы без написания кода;
- Пользовательский интерфейс и исходный код можно подключить к сложным прототипам интерфейсов всего за несколько минут;
- Редактор версий включает в себя файлы журнала и хронологии;
- Распределение и объединение процессов удобно при командной работе;
- Test Navigator позволяет быстро тестировать приложения в любой момент разработки;
- Автоматически создает, анализирует, тестирует и архивирует проекты благодаря интеграции с сервером OX X ;
- Рабочий процесс настраивается с помощью вкладок, поведения и фрагментов;
- Библиотека инструментов и каталог ресурсов.
Недостатки инструментальной среды разработки: для запуска Xcode нужен компьютер от компании Apple . А для загрузки создаваемых приложений в Apple Store - лицензия разработчика.
Выбор подходящей IDE
Какая IDE окажется лучшей именно для вас зависит от используемой операционной системы, языка программирования и тех платформ, которые вы хотите развивать.
Пропустили ли мы какие-нибудь важные IDE ? Напишите об этом в комментариях.
Дайте знать, что вы думаете по этой теме в комментариях. Мы очень благодарим вас за ваши комментарии, лайки, подписки, отклики, дизлайки!
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы. Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять. Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался. Например, Паскаль обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора. С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества. Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.
Система программирования — это система для разработки новых программ на конкретном языке программирования.
Современные системы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ. В них входят:
· компилятор или интерпретатор;
· интегрированная среда разработки;
· средства создания и редактирования текстов программ;
· обширные библиотеки стандартных программ и функций;
· мощные графические библиотеки; утилиты для работы с библиотеками;
· встроенная справочная служба и т.д.
Популярные системы программирования — Turbo Basic, Quick Basic, Turbo Pascal, Turbo C.
В последнее время получили распространение системы программирования, ориентированные на создание Windows-приложений:
· пакет Borland Delphi (Дельфи) — наследник семейства компиляторов Borland Pascal, предоставляющий качественные и удобные средства визуальной разработки. Его компилятор позволяет эффективно решать задачи прикладного программирования.
· пакет Microsoft Visual Basic — удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций.
· пакет Borland C++ — одно из самых распространённых средств для разработки DOS и Windows приложений.
Язык Бейсик (BASIC — Beginners All-purpose Symbolic Instruction Code — универсальный символьный код для начинающих) создан в 1965 г. Пишут Basic, придавая другую трактовку названию: основной, базовый. Наибольшее распространение имеют версии: QuickBasic (QBasic) для DOS и Visual Basic для Windows. QBasic фирмы Microsoft — это простой, но эффективный язык, унаследовавший от Бейсика достоинства, но избавившийся от недостатков и впитавший ряд передовых идей начала 90-х годов. Для быстрой работы используется режим интерпретатора, а для окончательного перевода отлаженных программ используется компилятор. Из QBasic компилятор исключен. QBasic входит в минимальный комплект поставки программного обеспечения ПК.
Язык Паскаль был разработан в 1970 г. Основные привлекательные черты Паскаля — логичность, поддержка концепций структурного и процедурного программирования, работа с динамической памятью, возможность создания своих типов данных. В Паскале программист должен всегда явно указывать, с какими конкретными переменными он желает работать и каковы типы этих переменных. В первоначальном виде Паскаль имел довольно ограниченные возможности, но расширенный вариант этого языка — Turbo Pascal, является очень мощным языком программирования. Интегрированная оболочка Turbo Pascal, разработанная фирмой Borland (ныне Inprise), включающая в себя редактор, компилятор, компоновщик и отладчик, вместе с интерактивной справкой сделали разработку программ на Паскале делом простым и приятным.
Язык Си разработан в 1972 г. как язык для программирования ОС UNIX. Язык среднего уровня, в котором краткость и мобильность языков высокого уровня сочетаются с возможностью доступа к аппаратуре ПК, что достигаются при программировании на языке Ассемблера.
Инструментальные программные средства (ИПС) – это программы, которые используются в ходе разработки, корректировки или развития других прикладных или системных программ.
ИПС могут оказать помощь на всех стадиях разработки ПО. По своему назначению они близки системам программирования. К инструментальным программам, например, относятся:
· отладочные программы, т.е. программы, помогающие устранять ошибки в программе;
· вспомогательные программы, реализующие часто используемые системные действия;
Для компьютерной поддержки разработки и сопровождения больших ПС с продолжительным жизненным циклом используются инструментальные системы технологии программирования. Инструментальная система технологии программирования - это интегрированная совокупность программных и аппаратных инструментов, поддерживающая все процессы разработки и сопровождения больших ПС в течение всего его жизненного цикла в рамках определенной технологии. Из этого определения вытекают следующие основные черты этого класса компьютерной поддержки: ·
ориентированность на коллективную разработку, ·
Комплексность компьютерной поддержки означает, что она охватывает все процессы разработки и сопровождения ПС и что продукция этих процессов согласована и взаимоувязана. Тем самым, система в состоянии обеспечить, по-крайней мере, контроль полноты (комплектности) создаваемой документации (включая набор программ) и согласованности ее изменения (версионности). Тот факт, что компьютерная поддержка охватывает и фазу сопровождения ПС, означает, что система должна поддерживать работу сразу с несколькими вариантами ПС, ориентированными на разные условия применения ПС и на разную связанную с ним аппаратуру, т.е. должна обеспечивать управление конфигурацией ПС.
Ориентированность на коллективную разработку означает, что система должна поддерживать управление (management) работой коллектива и для разных членов этого коллектива обеспечивать разные права доступа к различным фрагментам продукции технологических процессов.
Технологическая определенность компьютерной поддержки означает, что ее комплексность ограничивается рамками какой-либо конкретной технологии программирования. Инструментальные системы технологии программирования представляют собой достаточно большие и дорогие ПС, чтобы как-то была оправданна их инструментальная перегруженность. Поэтому набор включаемых в них инструментов тщательно отбирается с учетом потребностей предметной области, используемых языков и выбранной технологией программирования.
Интегрированность компьютерной поддержки означает·
интегрированность по данным, ·
интегрированность по пользовательскому интерфейсу, ·
интегрированность по действиям (функциям),
Интегрированность по данным означает, что инструменты действуют в соответствии с фиксированной информационной схемой (моделью) системы, определяющей зависимость различных используемых в системе фрагментов данных (информационных объектов) друг от друга. Интегрированность по пользовательскому интерфейсу означает, что все инструменты объединены единым пользовательским интерфейсом. Интегрированность по действиям означает, что, во-первых, в системе имеются общие части всех инструментов и, во-вторых, одни инструменты при выполнении своих функций могут обращаться к другим инструментам.
С учетом обсужденных свойств инструментальных систем технологии программирования можно выделить три их основные компоненты:·
база данных разработки (репозиторий),·
Репозиторий - центральное компьютерное хранилище информации, связанной с проектом (разработкой) ПС в течении всего его жизненного цикла. Инструментарий - набор инструментов, определяющий возможности, предоставляемые системой коллективу разработчиков. Обычно этот набор является открытым: помимо минимального набора (встроенные инструменты), он содержит средства своего расширения (импортированными инструментами), - и структурированным, состоящим из некоторой общей части всех инструментов (ядра) и структурных (иногда иерархически связанных) классов инструментов. Интерфейсы разделяются на пользовательский и системные. Пользовательский интерфейс обеспечивает доступ разработчикам к инструментарию (командный язык и т.п.), реализуется оболочкой системы. Системные интерфейсы обеспечивают взаимодействие между инструментами и их общими частями. Системные интерфейсы выделяются как архитектурные компоненты в связи с открытостью системы - их обязаны использовать новые (импортируемые) инструменты, включаемые в систему.
Самая общая архитектура инструментальных систем технологии программирования представлена на рис. 16.4.
Различают два класса инструментальных систем технологии программирования: инструментальные системы поддержки проекта и языково-зависимые инструментальные системы. Инструментальная система поддержки проекта - это открытая система, способная поддерживать разработку ПС на разных языках программирования после соответствующего ее расширения программными инструментами, ориентированными на выбранный язык. Такая система содержит ядро (обеспечивающее, в частности, доступ к репозиторию), набор инструментов, поддерживающих управление (management) разработкой ПС, независимые от языка программирования инструменты, поддерживающие разработку ПС (текстовые и графические редакторы, генераторы отчетов и т.п.), а также инструменты расширения системы. Языково-зависимая инструментальная система - это система поддержки разработки ПС на каком-либо одном языке программирования, существенно использующая в организации своей работы специфику этого языка. Эта специфика может сказываться и на возможностях ядра (в том числе и на структуре репозитория), и на требованиях к оболочке и инструментам. Примером такой системы является среда поддержки программирования на Аде (APSE [16.3]).
Рис. 16.4. Общая архитектура инструментальных систем технологии программирования.
Инструмента́льное програ́ммное обеспе́чение — программное обеспечение, предназначенное для использования в ходе проектирования, разработки и сопровождения программ, в отличие от прикладного и системного программного обеспечения.
Инструментальный уровень (трансляторы и компиляторы языков программирования, системы программирования), обеспечивают создание новых программ для персонального компьютера.
Язык программирования - формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.
Языки программирования подразделяются на низкоуровневые и высокоуровневые языки.
Низкоуровневый язык программирования - язык программирования, близкий к программированию непосредственно в машинных кодах.
Как правило, использует особенности конкретного семейства процессоров. Общеизвестный пример низкоуровнего языка - язык ассемблера.
Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом. Слово «высокоуровневый» здесь означает, что язык предназначен для решения абстрактных высокоуровневых задач и оперирует не инструкциями к оборудованию, а логическими понятиями и абстракцией данных. Это позволяет быстрее программировать сложные задачи и обеспечивает относительную независимость от оборудования. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в большей части, неизменным.
Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы написанные на языках высокого уровня, проще для понимания программистом, но гораздо менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в большинство современных профессиональных высокоуровневых языков программирования.
Наиболее распространёнными языками подобного типа являются C++, Visual Basic, Java, Python, Ruby, Perl, Delphi, PHP.
Языки программирования также можно разделить на компилируемые и интерпретируемые.
Программа на компилируемом языке при помощи специальной программы компилятора преобразуется (компилируется) в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполняемый файл, который может быть запущен на выполнение как отдельная программа. Другими словами, компилятор переводит программу с языка высокого уровня на низкоуровневый язык, понятный процессору.
Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) её текст без предварительного перевода. При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера - это интерпретатор машинного кода.
Кратко говоря, компилятор переводит программу на машинный язык сразу и целиком, создавая при этом отдельную программу, а интерпретатор переводит на машинный язык прямо во время исполнения программы.
Разделение на компилируемые и интерпретируемые языки является несколько условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов).
Для любого интерпретируемого языка можно создать компилятор - например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения.
Как правило, скомпилированные программы выполняются быстрее и не требуют для выполнения дополнительных программ, так как уже переведены на машинный язык. Вместе с тем при каждом изменении текста программы требуется ее перекомпиляция, что создает трудности при разработке. Кроме того, скомпилированная программа может выполняться только на том же типе компьютеров и, как правило, под той же операционной системой, на которую был рассчитан компилятор. Чтобы создать исполняемый файл для машины другого типа, требуется новая компиляция.
Интерпретируемые языки обладают некоторыми специфическими дополнительными возможностями, кроме того, программы на них можно запускать сразу же после изменения, что облегчает разработку. Программа на интерпретируемом языке может быть зачастую запущена на разных типах машин и операционных систем без дополнительных усилий. Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без дополнительной программы-интерпретатора.
Классы языков программирования.Условно, языки программирования можно разделить на следующие классы (рис. 2.).
В языках функционального программирования основными конструктивными элементами являются функции. Тексты программ на функциональных языках программирования описывают «как решить задачу», но не предписывают последовательность действий для решения.
В качестве основных свойств функциональных языков программирования обычно рассматриваются следующие:
· краткость и простота;
· функции - объекты вычисления;
· чистота (отсутствие побочных эффектов);
· отложенные (ленивые) вычисления.
Рис. 2. Классы языков программирования
Примеры языков функционального программирования: Лисп, Haskell, Clean, ML и др.
Процедурное программирование - это парадигма программирования, основанная на концепции вызова процедуры. Процедуры, также известны как подпрограммы, методы, или функции (это не математические функции, но функции, подобные тем, которые используются в функциональном программировании). Процедуры просто содержат последовательность шагов для выполнения. В ходе выполнения программы любая процедура может быть вызвана из любой точки, включая саму данную процедуру.
Примеры процедурных языков программирования: Ада, Бейсик, Си, Си++, Паскаль, Visual Basic, Dilphi и др.
Язык описания интерфейсовили IDL (англ. Interface Description Language) - чисто описательный компьютерный язык, синтаксически похожий на C++.
Примеры языков описания интерфейсов: CORBA IDL (разработан OMG для описания интерфейсов распределённых объектов - названий методов и типов переменных-аргументов), COM IDL (аналогичная CORBA IDL разработка Microsoft, созданная для описания интерфейсов между модулями COM).
Объектно-ориентированный язык программирования (ОО язык) - язык, благоприятствующий объектно-ориентированному программированию. В современных ОО языках используются методы:
Наследование. Создание нового класса объектов путём добавления новых элементов (методов). В данный момент ОО языки позволяют выполнять множественное наследование, т.е. объединять в одном классе возможности нескольких других классов.
Инкапсуляция. Сокрытие данных, которое (при грамотной реализации) позволяет вносить изменения в части программы безболезненно для других её частей. Что существенно упрощает сопровождение и модернизацию программного обеспечения.
Полиморфизм. При наследовании некоторые части (методы) родительского класса заменяются новыми, реализующими специфические для данного потомка действия. Таким образом, интерфейс классов остаётся прежним, а реализация методов с одинаковым названием и набором параметров различается.
Типизация. Позволяет устранить многие ошибки на момент компиляции, операции проводятся только над объектами подходящего типа.
Логическое программирование- парадигма программирования, а также раздел дискретной математики изучающий методы и возможности этой парадигмы, основанная на выводе новых фактов из данных фактов согласно заданным логическим правилам. Логическое программирование основано на теории математической логики. Самым известным языком логического программирования является Пролог, являющийся по своей сути универсальной машиной вывода, работающей в предположении замкнутости мира фактов.
Скриптовый язык (англ. scripting language, также называют язык сценариев) - язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками пакетной обработки (batch languages). Сценарии всегда интерпретируются, а не компилируются.
В прикладной программе, сценарий (скрипт) - это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы.
Примеры скриптовых языков программирования: VBA (Visual Basic Application), AutoLISP, 3DMAX Script, JCL, JavaScript и др.
Вопросы для самопроверки:
1. Программное обеспечение.
2. Базовый уровень.
3. Системный уровень программного обеспечения.
4. Служебный уровень программного обеспечения.
5. Прикладной уровень программного обеспечения.
6. Что называется драйверами устройств?
7. Что называется утилитами?
8. Дайте определение языка программирования.
9. Что такое интерпретатор?
10. Что такое компилятор?
11. Приведите примеры языков программирования низкого и высокого уровней, в чём их отличие?
12. Какие классы языков программирования можно выделить? Приведите примеры для каждого класса.
13. Назовите основные свойства функциональных языков программирования
14. Назовите какие методы используются в современных объектно-ориентированных языках программирования.
Программирование — это не только знания и мозг программиста, но и инструменты, без которых невозможно воплотить никакую идею в программировании. Поэтому инструменты программиста так же важны, как скальпель для хирурга. Их большое множество , и для каждого направления в программировании будет свой индивидуальный «набор инструментов». Но также есть и те, которые будут нужны , независимо от языка программирования или области, где вы программируете.
Чтобы начать программировать, нужно начать изучать язык программирования. Потом, опираясь на изучаемый язык , можно подобрать необходимые инструменты для программирования. В целом они делятся на категории , и уже каждая категория включает собственное многообразие. Самые нужные категории для старта в разработке и самые популярные в них инструменты программиста мы сегодня представим вашему вниманию.
Инструменты программиста
Среды разработки.
Системы контроля версий.
Редакторы интерфейсов.
Редакторы баз данных.
Инструменты программиста для тестирования.
Фреймворки.
Среда разработки
редактор кода с подсветкой синтаксиса;
компилятор кода;
отладку кода;
возможность управлять разными проектами;
и др.
Geany;
NetBeans;
CodeBlocks;
Eclipse;
Qt Creator.
Система контроля версий
Git;
Subversion;
Mercurial.
GitHub;
Bitbucket.
Редактор интерфейсов
Интерфейс можно программировать «вручную». Так обычно происходит, если вы разрабатываете небольшую программу. Но когда дело доходит до чего-то масштабного, то программирование интерфейса вручную становится очень муторны м процесс ом .
В продвинутых IDE будут доступны отдельные плагины для разработки интерфейса, но можно присмотреть и отдельные программы для этого, например, Glade. Бывают случаи, когда для разработки интерфейса требуется не просто программа, а отдельный фреймворк.
Редактор интерфейсов, он же GUI-конструктор — если он в виде программы или плагина, поможет быстро «накидать» внешний вид программы путем простого перетаскивания нужных блоков.
Редактор баз данных
PHPMyAdmin;
He id iSQL;
DBTools Manager.
Инструменты программиста для тестирования ПО
Процесс тестирования программ — это неотъемл е мая часть качественной разработки. Потому что именно тестирование покажет, работает ли ваша программа так , как вы задумывали , или нет.
Когда программы были не слишком сложными, проводить тестирование было довольно просто. Были специальные инструменты для «исчерпывающего тестирования» — когда сразу проверялись все возможные варианты выполнения программы. Теперь программы усложнились. Поэтому найти универсальный инструмент автоматического тестирования не представляется возможным. Искать подобные инструменты нужно под конкретную задачу или же писать их самостоятельно.
Фреймворки
На сегодняшний день обилие фреймворков зашкаливает — они есть у многих популярных языков и технологий разработки. Они дают возможность не разрабатывать программы с нуля, а использовать уже готовые модули и каркасы. То есть фреймворк способен генерировать основную часть программы, а программист уже доводит эту программу до нужного состояния.
Поэтому иногда просто знать какой-то язык недостаточно, нужно знать еще его популярные фреймворки, чтобы получить хорошую работу.
Заключение
Выучить соответствующий язык и/или фреймворк.
Подобрать удобную среду разработки: IDE или облачный сервис.
Если игра большая, то использовать в разработке систему контроля версий, тот же GitHub.
Подобрать подходящий редактор интерфейса: плагин к IDE, отдельная программа или вообще отдельный фреймворк.
Подобрать подходящее средство для тестирования.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Читайте также: