Delphi — это язык программирования общего назначения и программный продукт, использующий диалект Delphi языка программирования Object Pascal и предоставляющий интегрированную среду разработки (IDE) для быстрой разработки приложений для настольных компьютеров, мобильных устройств , веб-приложений и консольного программного обеспечения [3] , в настоящее время разрабатываемый и поддерживаемый Embarcadero Technologies .
Компиляторы Delphi генерируют собственный код для Microsoft Windows , macOS , iOS , Android и Linux ( x64 ). [4] [5] [6]
Delphi включает в себя редактор кода, визуальный конструктор, интегрированный отладчик, компонент управления исходным кодом и поддержку сторонних плагинов . Редактор кода включает Code Insight ( дополнение кода ), Error Insight (проверка ошибок в реальном времени) и рефакторинг . Дизайнер визуальных форм имеет возможность использовать либо Visual Component Library (VCL) для чистой разработки Windows, либо фреймворк FireMonkey (FMX) для кросс-платформенной разработки. Поддержка баз данных является ключевой функцией и предоставляется FireDAC (Database Access Components). Delphi известен своей высокой скоростью компиляции, собственным кодом и производительностью разработчика. [ необходима цитата ]
Delphi изначально был разработан Borland как инструмент быстрой разработки приложений для Windows в качестве преемника Turbo Pascal . Delphi добавил полное объектно-ориентированное программирование к существующему языку, и язык разросся до поддержки обобщений, анонимных методов , замыканий и собственной поддержки Component Object Model (COM).
Delphi и его аналог на C++ , C++Builder , совместимы и продаются совместно под названием RAD Studio. Существуют редакции Professional, Enterprise и Architect, причем более высокие редакции имеют больше функций по более высокой цене. Существует также бесплатная редакция Community с большинством функций Professional, но ограниченная пользователями и компаниями с низким доходом. [7]
Delphi поддерживает быструю разработку приложений (RAD). Основные функции — визуальный конструктор и две среды разработки приложений : Visual Component Library (VCL) для Windows и FireMonkey (FMX) для кроссплатформенной разработки.
Delphi использует основанный на Pascal язык программирования Object Pascal, созданный Андерсом Хейлсбергом для Borland (теперь IDERA) в качестве преемника Turbo Pascal. Он поддерживает собственную кросс-компиляцию для многих платформ, включая Windows, Linux, iOS и Android.
Для лучшей поддержки разработки для Microsoft Windows и взаимодействия с кодом, разработанным с помощью других инструментов разработки ПО, Delphi поддерживает независимые интерфейсы Component Object Model (COM) с реализациями классов подсчета ссылок и поддержкой многих сторонних компонентов. Реализации интерфейсов могут быть делегированы полям или свойствам классов. Обработчики сообщений реализуются путем маркировки метода класса целочисленной константой сообщения для обработки. [ необходима цитата ]
Подключение к базам данных широко поддерживается с помощью компонентов VCL, поддерживающих базы данных и обеспечивающих доступ к ним.
В более поздние версии были включены обновленные и улучшенные процедуры библиотеки времени выполнения, некоторые из которых предоставлены группой сообщества FastCode .
Delphi использует строго типизированный язык программирования высокого уровня , предназначенный для простоты использования и изначально основанный на более раннем языке Object Pascal. Pascal изначально разрабатывался как язык общего назначения, «подходящий для выражения основных конструкций, известных в то время, лаконичным и логичным способом», и «его реализация должна была быть эффективной и конкурентоспособной с существующими компиляторами FORTRAN» [8], но без средств программирования низкого уровня или доступа к оборудованию. Turbo Pascal и его потомки, включая Delphi, поддерживают доступ к оборудованию и программирование низкого уровня с возможностью включения кода, написанного на языке ассемблера и других языках. Объектно-ориентированный подход Delphi характеризуется только полиморфизмом на основе классов и интерфейсов . [9] Метаклассы являются объектами первого класса. Объекты являются ссылками на объекты (как в Java ), которые Delphi неявно разыменовывает, поэтому обычно нет необходимости вручную выделять память для указателей на объекты или использовать аналогичные методы, которые требуются некоторым другим языкам. Существуют специальные типы строк с подсчетом ссылок, а также строки с завершающим нулем.
Строки можно объединять с помощью оператора '+', а не с помощью функций. Для выделенных типов строк Delphi управляет памятью без вмешательства программиста. Начиная с Borland Developer Studio 2006, существуют функции для обнаружения утечек памяти .
Delphi включает интегрированную IDE. Все продукты Delphi поставляются с библиотекой времени выполнения (RTL) и библиотекой визуальных компонентов (VCL), включая большую часть исходного кода. Доступны сторонние компоненты (иногда с полным исходным кодом ) и инструменты для улучшения IDE или для других задач разработки, связанных с Delphi, некоторые из них бесплатны. IDE включает графический интерфейс для локализации и перевода созданных программ, которые могут быть развернуты в трансляторе; также существуют сторонние инструменты с большим количеством функций для этой цели. Фреймворк VCL поддерживает высокий уровень совместимости исходного кода между версиями, что упрощает обновление существующего исходного кода до более новой версии Delphi. Сторонние библиотеки обычно требуют обновлений от поставщика, но, если предоставляется исходный код, перекомпиляции с более новой версией может быть достаточно. VCL был одним из первых, кто принял внедрение зависимостей или инверсию управления ; он использует модель повторно используемых компонентов, расширяемую разработчиком. С помощью помощников классов можно добавлять новые функциональные возможности в основные классы RTL и VCL, не изменяя исходный код RTL или VCL.
Компилятор оптимизирует и является однопроходным компилятором . Он может опционально компилировать в один исполняемый файл , который не требует DLL . Delphi также может генерировать стандартные DLL, ActiveX DLL, серверы автоматизации COM и службы Windows .
Начиная с Delphi 2005, среды разработки Delphi все чаще поддерживают функции рефакторинга , такие как извлечение методов и возможность создания моделей UML из исходного кода или изменения исходного кода путем внесения изменений в модель.
У Delphi есть сообщества в Интернете , в которых активно участвуют и ее сотрудники.
Delphi — один из языков, где обратная совместимость близка к 100%. Хотя каждая новая версия Delphi пытается сохранить как можно большую обратную совместимость , чтобы обеспечить повторное использование существующего кода, новые функции, новые библиотеки и улучшения иногда делают более новые версии менее 100%-ными по обратной совместимости.
С 2016 года новые версии Delphi выходят каждые шесть месяцев, а новые платформы добавляются примерно каждый второй выпуск. [10]
Delphi предлагает две среды для визуальной разработки приложений: VCL и FireMonkey (FMX):
Delphi и его аналог на C++ , C++Builder , совместимы. Они разделяют многие основные компоненты, в частности IDE, фреймворки VCL и FMX, а также большую часть библиотеки времени выполнения . Кроме того, их можно использовать совместно в проекте. Например, C++Builder 6 и более поздние версии могут объединять исходный код из Delphi и C++ в одном проекте, в то время как пакеты, скомпилированные с помощью C++Builder, можно использовать из Delphi. В 2007 году продукты были выпущены совместно как RAD Studio, общий хост для Delphi и C++Builder, который можно приобрести с одним или обоими. Начиная с Rio, также есть совместимость с Python.
программа ObjectPascalExample ; тип THelloWorld = класс процедура Поместить ; конец ; procedure THelloWorld . Put ; begin Writeln ( 'Привет, мир!' ) ; end ; var HelloWorld : THelloWorld ; { это неявный указатель } begin HelloWorld := THelloWorld.Create ; { конструктор возвращает указатель на объект типа THelloWorld } HelloWorld.Put ; HelloWorld.Free ; { эта строка освобождает объект THelloWorld, на который указывает HelloWorld } end .
Обратите внимание, что конструкция объекта по-прежнему доступна в Delphi.
Delphi — это среда, используемая для обучения программированию в школах Южной Африки как предмету информационных технологий (ИТ). [11]
Embarcadero раньше публиковала «дорожные карты», описывающие их будущие планы развития. Последняя была опубликована в ноябре 2020 года. [12] Версия 10.5, упомянутая в дорожной карте за ноябрь 2020 года, была переименована в 11.0. Начиная с Delphi 11, Embarcadero решила больше не публиковать формальные дорожные карты. Вместо этого возможные новые функции теперь представлены в свободном порядке через записи в блоге и онлайн-вебинары. Важную роль играет Марко Канту (менеджер по продукту) со своим блогом.