PascalABC.NET: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Miks2012 (обсуждение | вклад) Уточнение заголовка примера |
Miks2012 (обсуждение | вклад) Удаление игрушечного примера. Не иллюстрирует суть PascalABC.NET |
||
Строка 106: | Строка 106: | ||
end. |
end. |
||
</source> |
</source> |
||
Пример программы на PascalABC.NET. Прорамма выводит числа от 0 до 9 случайного цвета в случайнюю точку. |
|||
<source lang=pascal> |
|||
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.</source> |
|||
== Лицензия == |
== Лицензия == |
Версия от 22:06, 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
История развития
В 2005—2006 была предпринята переработка системы, изменён язык реализации — на 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
на базе произвольных типов (set of integer
) - Методы в записях
- Наряду со стандартным, упрощённый синтаксис модулей
- Структурная эквивалентность типов для динамических массивов, указателей, множеств и процедурных типов
- Двумерные динамические массивы
- Все типы — классы
- Инициализаторы полей классов и записей
- Операция
new
для вызова конструктора - Возможность определять методы как внутри, так и вне интерфейса класса
- Перегрузка операций
- Интерфейсы в стиле .NET
- Подключение пространств имен .NET в разделе
uses
- Обобщённые классы, интерфейсы, подпрограммы и процедурные переменные
- Статические конструкторы
- Автоматическая сборка мусора для объектов
- Атрибуты
- Методы расширения
- Лямбда-функции с явной аннотацией типов
- Поддержка директив OpenMP
- Поддержка неуправляемого кода через external
Стандартные модули
Поскольку в PascalABC.NET можно пользоваться всеми библиотеками платформы .NET, то стандартные модули ориентированы исключительно на обучение:
- Модуль растровой графики GraphABC
- Модуль векторной графики ABCObjects
- Модуль Arrays для ввода-вывода-заполнения одномерных и двумерных динамических массивов
- Модуль Collections, содержащий упрощенные классы коллекций
- Модуль MPI - обертка над MPI-функциями
- Модули исполнителей Робот и Чертёжник (школьная информатика)
Примеры программ
Пример 1. Использование методов расширения для программирования в функциональном стиле
uses Arrays;
var a: array of integer := (1,3,5,7,9,11,13,15,17,19);
begin
a.Writeln;
// Поменять местами первую и вторую половины массива
a.Skip(a.Length div 2).Concat(a.Take(a.Length div 2)).ToArray().Writeln;
end.
Лицензия
Pascal ABC и PascalABC.NET всех версий является бесплатным (freeware) программным обеспечением.
Примечания
- ↑ Сайт проекта «Система программирования PascalABC.NET»
- ↑ 1 2 Система программирования Pascal ABC
- ↑ Программы недели -> программирование
- ↑ Номинация Программирование:Рейтинг софта за 2005:Софт@Mail.ru
- ↑ Номинация Программирование:Рейтинг софта за 2007:Софт@Mail.ru
- ↑ PascalABC.Net web development environment (WDE)
- ↑ Модуль графики для WDE - Система программирования PascalABC.NET
Ссылки
- Сайт проекта «Система программирования PascalABC.NET»
- Описание языка PascalABC.NET
- Электронный задачник по программированию Programming Taskbook
- RVGames.de (рус.) — Цифровая книга "Занимательные уроки с паскалем, или PascalABC.NET для начинающих"
- статья PascalABC.NET в Прогопедии — энциклопедии языков программирования (рус.)
- PascalABC на сайте Воскресной компьютерной школы
Литература
- Михалкович С.С. Учебная система программирования 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 с.