PascalABC.NET — это:

Просмотров: 3591709
  • Язык программирования Pascal нового поколения, сочетающий простоту классического языка Паскаль, ряд современных расширений и огромные возможности платформы .NET.
  • Бесплатная, простая и мощная среда разработки.
  • Встроенный в среду разработки дизайнер форм, позволяющий быстро создавать оконные приложения.
  • Свободная лицензия LGPLv3.

Важные ссылки:

Скачать Последняя версия системы программирования PascalABC.NET
Посмотреть примеры программ
Примеры программ на PascalABC.NET

Презентации

Язык программирования PascalABC.NET. Простейшие новые возможности Процедуры, функции, лямбда-выражения Последовательности
3D-графика. Модуль Graph3D (презентация .ppsx) Массивы: алгоритмы против методов и операций (документ .pdf)
Язык программирования PascalABC.NET 3.1. Обзор новых возможностей Сравнение PascalABC.NET и старого Паскаля

Ключевые особенности PascalABC.NET

  • Ряд расширений языка Pascal, в числе которых оператор foreach, внутриблочные описания переменных, автоопределение типа при описании, встроенные множества произвольных типов, case по строкам, упрощенный синтаксис модулей, методы в записях, операция new для создания объектов, определение тел методов внутри классов, целые произвольной длины, многомерные динамические массивы.
  • Самые современные средства языков программирования: обобщенные классы и подпрограммы, интерфейсы, перегрузка операций, λ-выражения, исключения, сборка мусора, методы расширения, безымянные классы, автоклассы.
  • Генерация эффективного кода для платформы .NET.
  • Высокая совместимость с Delphi.
  • Высокая скорость выполнения программ.
  • Возможность доступа к огромному количеству .NET-библиотек от контейнерных классов до средств работы с сетью.
  • Среда разработки с встроенным отладчиком, обеспечивающая подсказки по коду, переход к определению и реализации подпрограммы, шаблоны кода, автоформатирование кода.
  • Встроенный в среду разработки дизайнер форм для быстрого создания оконных приложений.
  • Простая и эффективная растровая графическая библиотека.
  • Средства параллельного программирования в виде директив OpenMP.
  • Встроенный электронный задачник Programming Taskbook.
  • Модули исполнителей Робот и Чертежник, используемых в школьной информатике.
  • Механизм проверяемых заданий, обеспечивающий автоматическую постановку и проверку заданий.
  • Возможность запуска консольного компилятора под Mono в современных версиях Linux, возможность встраивания PascalABC.NET в редактор Geany.

Система PascalABC.NET является совместной разработкой российских и немецких программистов. В России центр разработки находится в институте математики, механики и компьютерных наук Южного федерального университета.

PascalABC.NET активно используется в ряде средних и высших учебных заведений России и ближнего зарубежья. Так, на мехмате Южного федерального университета он используется для обучения 1 курса направления Фундаментальная информатика и информационные технологии в курсе Основы программирования, а также для обучения школьников в одной из самых больших в России Детской компьютерной школе

Простота, современные возможности, свободный код — вот главные достоинства PascalABC.NET!

Новости

30.08.18. Вышла версия 3.4.2. Реализованы расширенные свойства. Реализован новый модуль векторной графики WPFObjects.

17.06.18. Опубликован документ Массивы: алгоритмы против методов и операций

17.06.18. Закончена презентация по модулю Graph3D (.pdf, без анимации) Добавлено 16 слайдов.

23.05.18. Вышла версия 3.4. Реализован Pattern Matching и расширенный оператор is

Наш Твиттер


Случайная программа

// Создание случайного идеально сбалансированного 
// бинарного дерева и его инфиксный обход
// Уровень сложности: 2

type
  Node<T> = auto class
    data: T;
    left, right: Node<T>;
  end;

function CreateTree(n: integer): Node<integer>;
begin
  if n <= 0 then
    Result := nil
  else
    Result := new Node<integer>(
      Random(100),
      CreateTree((n-1) div 2),
      CreateTree(n-1 - (n-1) div 2));
end;

procedure InfixPrintTree<T>(r: Node<T>);
begin
  if r = nil then
    exit;
  InfixPrintTree(r.left);
  Print(r.data);
  InfixPrintTree(r.right);
end;

const N = 20;

begin
  var root := CreateTree(N);
  InfixPrintTree(root);
end.