Система PascalABC.NET (версия 1.0)

PascalABC.NET - это язык Object Pascal для платформы Microsoft .NET, содержащий все основные элементы современных языков программирования: модули, классы, перегрузку операций, интерфейсы, исключения, обобщенные классы, сборку мусора, а также некоторые средства параллельности. Система PascalABC.NET включает в себя также простую интегрированную среду, ориентированную на эффективное обучение программированию. О преимуществах PascalABC.NET для обучения можно прочитать здесь. Отличия PascalABC.NET от Delphi Object Pascal приведены здесь. Примеры, иллюстрирующие основные особенности PascalABC.NET, находятся в меню "Помощь/Коротко о главном".

Язык Паскаль был разработан Никлаусом Виртом в 1970 г. как язык со строгой типизацией и интуитивно понятным синтаксисом. В 80-е годы наиболее известной реализацией стал компилятор Turbo Pascal фирмы Borland, в 90-е ему на смену пришла среда программирования Delphi, которая стала одной из лучших сред для быстрого создания приложений под Windows. Delphi ввела в язык Паскаль ряд удачных объектно-ориентированных расширений, обновленный язык получил название Object Pascal. Из альтернативных реализаций Object Pascal следует отметить многоплатформенный open source компилятор Free Pascal, а также систему Oxygene (Object Pascal для .NET).

Основная причина создания PascalABC.NET - необходимость в современной простой и мощной бесплатной среде для языка Object Pascal, опирающейся на передовую платформу программирования Microsoft.NET. Платформа .NET обеспечивает язык PascalABC.NET огромным количеством стандартных библиотек и позволяет легко сочетать его с другими .NET-языками: C#, Visual Basic.NET, управляемый C++, Delphi.NET, Oxygene и др. Платформа .NET предоставляет также такие языковые средства, как единый механизм обработки исключений, единый механизм управления памятью в виде сборки мусора, а также возможность свободного использования классов, наследования, полиморфизма и интерфейсов между модулями, написанными на разных .NET-языках. О том, что такое платформа Microsoft.NET, о ее преимуществах для программирования и для обучения можно прочитать здесь.

Наиболее близкой по идеологии к PascalABC.NET является система RemObjects Oxygene. Однако реализованный в ней язык Object Pascal сильно изменен в сторону .NET: нет глобальных описаний, все описания помещаются в класс, содержащий классовый метод Main, отсутствует ряд стандартных подпрограмм языка Паскаль. Кроме того, система Oxygene - платная (за исключением консольного компилятора) и не содержит собственной оболочки (встраивается в Visual Studio).

Язык PascalABC.NET близок к реализации Delphi Object Pascal. В нем отсутствует ряд специфических языковых конструкций Delphi Object Pascal, таких как открытые массивы, записи с вариантами, Variant-тип и т.п., некоторые конструкции изменены (не требуется писать overload, иной синтаксис перегрузки операций, вместо процедурных переменных используются делегаты .NET, интерфейсы реализованы в стиле C# и т.д.). Кроме этого, добавлен ряд возможностей: можно описывать переменные внутри блока, методы в записях, подпрограммы с переменным числом параметров, имеются операции +=, -=, *=, /=, в секции uses можно подключать пространства имен .NET, методы можно описывать непосредственно в теле класса или записи, поля классов можно инициализировать при описании, множества set могут быть на базе произвольных типов, введены операторы foreach и lock, переменные циклов for и foreach можно описывать непосредственно в заголовке цикла, имеются обобщенные классы (generics) и др.

Интегрированная среда PascalABC.NET обеспечивает подсветку синтаксиса, подсказку по коду (подсказка по точке, подсказка параметров подпрограмм, всплывающая подсказка по коду), форматирование текста программы по запросу, переход к определению и реализации имени, элементы рефакторинга.

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

Все права на систему программирования PascalABC.NET принадлежат PascalABCCompiler Team (web-сайт http://pascalabc.net).