PascalABC.NET: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Строка 55: Строка 55:
С мая 2012 г. в веб-среду разработки добавлена поддержка компиляторов C#, VB.NET, Iron Python и F#, в связи с чем она была переименована в '''ProgrammingABC.NET WDE'''.
С мая 2012 г. в веб-среду разработки добавлена поддержка компиляторов C#, VB.NET, Iron Python и F#, в связи с чем она была переименована в '''ProgrammingABC.NET WDE'''.


=== Особенности языка и стандартные модули ===
=== Особенности языка ===
* Операторы <code>+= -= *= /=</code>
* Операторы <code>+= -= *= /=</code>
* Внутриблочные описания переменных
* Внутриблочные описания переменных
Строка 81: Строка 81:
* Лямбда-функции с явной аннотацией типов
* Лямбда-функции с явной аннотацией типов
* Поддержка директив [[OpenMP]]
* Поддержка директив [[OpenMP]]
* Поддержка неуправляемого кода через '''external'''
* Улучшенный модуль растровой графики GraphABC

=== Стандартные модули ===

* Модуль растровой графики GraphABC
* Модуль векторной графики ABCObjects
* Модуль векторной графики ABCObjects
* Модуль Arrays для ввода-вывода-заполнения одномерных и двумерных динамических массивов
* Модуль Collections, содержащий упрощенные классы коллекций
* Модуль MPI - обертка над MPI-функциями
* Модули исполнителей Робот и Чертёжник (школьная информатика)
* Модули исполнителей Робот и Чертёжник (школьная информатика)

* Поддержка неуправляемого кода через '''external'''

<br />
<br />
Пример программы на PascalABC.NET. Прорамма выводит числа от 0 до 9 случайного цвета в случайнюю точку.
Пример программы на PascalABC.NET. Прорамма выводит числа от 0 до 9 случайного цвета в случайнюю точку.

Версия от 21:42, 3 декабря 2012

PascalABC
Семантика императивная
Класс языка мультипарадигменный: структурное, объектно-ориентированное, обобщённое, процедурное программирование
Тип исполнения компилятор
Появился в 2002
Автор С. С. Михалкович, А. В. Ткачук, И. В. Бондарев, С. О. Иванов
Расширение файлов .pas
Выпуск 1.8 сборка 513 (09.11.2012)
Система типов статическая
Основные реализации PascalABC.NET
Испытал влияние Паскаль, Delphi, C#
Лицензия freeware
Сайт Домашняя страница PascalABC.NET
Логотип Викисклада Медиафайлы на Викискладе

PascalABC.NET — система программирования. Язык системы — это реализация Object Pascal для платформы Microsoft.NET, который содержит все основные элементы современных языков программирования: модули, классы, перегрузку операторов, интерфейсы, исключения, обобщенные классы, сборку мусора, а также некоторые средства параллельного программирования.[1]

Основное предназначение системы программирования PascalABC.NET — обучение современному программированию.

Предыстория. Pascal ABC

Система создавалась на факультете математики, механики и компьютерных наук ЮФУ как учебная среда программирования (автор — доцент С. С. Михалкович).

Система представляла из себя фактически интерпретатор языка программирования Паскаль с интегрированной оболочкой. Язык, в основном, соответствовал входному языку Object Pascal. Некоторые возможности, например, записи с вариантами, опускались «как бесполезные». Система Pascal ABC разрабатывалась в среде Delphi для операционных систем, использующих Win32 API.

Несмотря на неполную реализацию языка, система стала удачной заменой уже давно устаревшей системе Turbo Pascal в первоначальном обучении программированию. Уже с версии 2 Pascal ABC стал надёжной средой программирования для начинающих, имеющей практически полную реализацию Object Pascal. Система широко использовалась на мехмате ЮФУ как для обучения студентов, так и в работе Детской компьютерной школы мехмата ЮФУ[2]. Её использование также отмечалось в ряде средних школ Ростова-на-Дону. Благодаря созданию сайта системы Pascal ABC её использование существенно расширилось, система стала известна за пределами Ростова-на-Дону, как учебную систему её использовали во многих регионах СНГ. В каталоге Soft@Mail.ru программа Pascal ABC в 2006 году признавалась программой недели[3], а также признавалась самой популярной программой в категории программирование в 2005[4] и 2007[5].

Система Pascal ABC с сентября 2007 года не развивается и не поддерживается, однако её страница[2] продолжает функционировать и с этой страницы можно загрузить Pascal ABC версии 3.0.1.

PascalABC.NET

Внешние изображения
Внешний вид программы.

История развития

В 20052006 была предпринята переработка системы, изменён язык реализации — на C#, и изменена её архитектура — на полноценный компилятор языка Object Pascal с расширениями, связанными с платформой .NET. Новая система получила название PascalABC.NET. В июне 2009 года появилась стабильная версия 1.2 (1.2.0.325) PascalABC.NET.

Консольный компилятор PascalABC.NET функционирует на Linux и MacOS под Mono, однако среда разработки не является кроссплатформенной.

В 2007—2008 годах был зафиксирован интерес к системе PascalABC.NET из Болгарии [источник не указан 4416 дней] и других стран.

В сентябре 2009 г. появилась веб-среда разработки[6], позволяющая запускать программы на PascalABC.NET непосредственно из окна браузера. Для зарегистрированных пользователей доступен личный файловый архив программ с возможностью навигации. В августе 2010 г. в WDE появилась возможность создавать простые графические приложения[7].

В августе 2011 г. осуществлен переход на .NET 4.0 (версия 1.8). В январе 2012 г. веб-среда разработки WDE также была переведена на .NET 4.0.

С мая 2012 г. в веб-среду разработки добавлена поддержка компиляторов C#, VB.NET, Iron Python и F#, в связи с чем она была переименована в ProgrammingABC.NET WDE.

Особенности языка

  • Операторы += -= *= /=
  • Внутриблочные описания переменных
  • Описание переменных в заголовке цикла for
  • Инициализация переменной при присваивании (var n: integer := 10;) в том числе и для локальных переменных
  • Автоопределение типа переменной при инициализации (var x := 1;)
  • Цикл foreach
  • Подпрограммы с переменным числом параметров
  • Множества set на базе произвольных типов
  • Методы в записях
  • Наряду со стандартным, упрощённый синтаксис модулей
  • Структурная эквивалентность типов для динамических массивов, указателей, множеств и процедурных типов
  • Все типы — классы
  • Инициализаторы полей классов и записей
  • Операция new для вызова конструктора
  • Возможность определять методы как внутри, так и вне интерфейса класса
  • Перегрузка операций
  • Интерфейсы в стиле .NET
  • Подключение пространств имен .NET в разделе uses
  • Обобщённые классы, интерфейсы, подпрограммы и процедурные переменные
  • Статические конструкторы
  • Автоматическая сборка мусора для объектов
  • Атрибуты
  • Методы расширения
  • Лямбда-функции с явной аннотацией типов
  • Поддержка директив OpenMP
  • Поддержка неуправляемого кода через external

Стандартные модули

  • Модуль растровой графики GraphABC
  • Модуль векторной графики ABCObjects
  • Модуль Arrays для ввода-вывода-заполнения одномерных и двумерных динамических массивов
  • Модуль Collections, содержащий упрощенные классы коллекций
  • Модуль MPI - обертка над MPI-функциями
  • Модули исполнителей Робот и Чертёжник (школьная информатика)



Пример программы на PascalABC.NET. Прорамма выводит числа от 0 до 9 случайного цвета в случайнюю точку.

uses crt;
var i:integer;
begin
while true do
begin
  GotoXY(Random(1,WindowWidth),Random(1,WindowHeight));
  TextColor(Random(1,15));
  write(Random(9));
  Inc(i);
  SetWindowTitle(i.ToString+' из 5000');
  if i=5000 then 
  begin
    i:=0;
    ClrScr;
  end;
end;
end.

Лицензия

Pascal ABC и PascalABC.NET всех версий является бесплатным (freeware) программным обеспечением.

Примечания

Ссылки

Литература

  • Михалкович С.С. Учебная система программирования PascalABC // Научно-методическая конференция «Современные информационные технологии в образовании: Южный Федеральный округ» 13—14 мая 2004 / Крукиер Л.А., Муратова Г.В.. — Ростов-на-Дону: ЮГИНФО РГУ, 2004. — С. 156—158. — 252 с. — 200 экз.
  • Михалкович С.С. Учебная система программирования PascalABC: опыт разработки и использования // Вторая международная научно-практическая конференция «Современные информационные технологии и ИТ-образование»: Сборник трудов. — М., 2006. — С. 394—399.
  • Водолазов Н.Н., Михалкович С.С., Ткачук А.В. Опыт разработки учебного языка программирования для платформы .NET // Научно-методическая конференция «Современные информационные технологии в образовании: Южный Федеральный округ» 26—29 апреля 2007 / Крукиер Л.А., Муратова Г.В.. — Ростов-на-Дону: Изд-во «ЦВВР», 2007. — С. 71—73. — 312 с. — 250 экз. — ISBN 978-5-94153-146-2.
  • Абрамян М.Э., Михалкович С.С. Основы программирования на языке Паскаль: Скалярные типы данных, управляющие операторы, процедуры и функции. — Ростов-на-Дону: ООО «ЦВВР», 2004. — 198 с. — ISBN 5-94153-075-7.
  • Абрамян М.Э. Практикум по программированию на языке Паскаль: Массивы, строки, файлы, рекурсия, указатели. — Ростов-на-Дону: ООО «ЦВВР», 2004. — 187 с. — ISBN 5-94153-001-3.
  • Рубанцев Валерий. [RVGames.de Занимательные уроки с паскалем, или PascalABC.NET для начинающих]. — Я + R, 2012. — 698 с.

Шаблон:Нет интервики