Система программирования PascalABC.NET

PascalABC.NET - это реализация языка Object Pascal для .NET Framework, включающая такие важные особенности современных языков программирования как интерфейсы, обобщенные классы (generics), делегаты, сборка мусора, исключения, средства параллельности. PascalABC.NET - это бесплатная среда программирования, сочетающая простоту языка Паскаль и огромные возможности платформы .NET. 13 декабря 2008 г. вышла версия 1.1 beta, скачать ее можно отсюда. Описание среды и языка опубликовано здесь.

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

Наиболее популярным решением для персональных компьютеров в 80-е - начале 90 годов стал компилятор Turbo Pascal фирмы Borland, который ввел в язык Паскаль новые возможности и обеспечивал высокую скорость компиляции. Выпущенная в 1995 г. как продолжение среды Turbo Pascal система программирования Delphi стала одной из лучших сред для быстрого создания приложений. Delphi ввела в язык Паскаль ряд удачных объектно-ориентированных расширений; обновленный язык получил название Object Pascal.

Однако, язык Delphi Object Pascal тесно привязан к среде, ориентированной на программирование под Windows, что привело к трудностям при переносимости его на другие платформы. Кроме того, среда Delphi по мере развития становилась все более громоздкой и малопригодной для обучения программированию. Наконец, появление платформ Java и .NET, включающих мощный язык программирования и мощные стандартные библиотеки ослабило позиции языка Delphi. В профессиональном программировании царствуют такие языки как Java, C, C++, C#, Visual Basic, PHP, Java Script (см. рейтинг языков программирования), для обучения программированию часто выбираются перечисленные выше языки, а также Oberon, Python и др.

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

Язык и система программирования PascalABC.NET призваны изменить сложившуюся ситуацию и вернуть языку Паскаль былую привлекательность как для обучения, так и для профессионального программирования, помножив ее на мощь платформы .NET. PascalABC.NET содержит следующие предоставляемые платформой .NET языковые средства: интерфейсы, перегрузка операций, обобщенные классы, делегаты, исключения, сборка мусора. Откомпилированные модули хранятся в специальном промежуточном формате, представляющем собой семантическое дерево программы и обеспечивающем возможность проведения ряда высокоуровневых преобразований. Кроме того, в PascalABC.NET добавлены такие языковые средства как оператор foreach, операция new для создания объектов классов, инициализация любых переменных при описании (в т.ч. локальных и полей классов), методы в записях, встроенные множества произвольных типов, внутриблочные описания переменных, определение тел методов внутри классов. 

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

  • электронный задачник по программированию Programming Taskbook (сайт http://ptaskbook.com) 
  • растровая графическая библиотека GraphABC
  • библиотека векторных графических объектов ABCObjects
  • модули Робот и Чертежник, используемые в школьной информатике для быстрого обучения программированию школьников средних классов

Простота, современные возможности, бесплатность - вот главные достоинства PascalABC.NET !