Отличия PascalABC.NET от
Pascal ABC
Оболочка и компилятор
- Возможность создавать .exe и
.dll-файлы.
- Необходимость установки платформы .NET.
- Совместимость создаваемого кода с другими .NET-языками.
- Возможность запуска нескольких программ из оболочки
одновременно.
- Возможность менять язык интерфейса "на лету", легкая
возможность добавления новых языков интерфейса.
- Возможность подключать дополнительные plug-inы,
расширяющие возможности оболочки.
- Возможность создания front-end
компиляторов других языков программирования.
- Генерация промежуточных PCU-файлов,
хранящих дерево программы, для ускорения компиляции и
высокоуровневых преобразований исходного кода.
- Предупреждения при компиляции.
- Два способа запуска приложения из-под оболочки: со
связью и без связи с оболочкой.
Язык
Добавлено
- Динамические массивы (
array of
integer).
- Статические методы классов.
- Перегрузка операций.
- Операции
+= -= для событий .NET и для процедурных
переменных.
- Операции
+= -= *= для целых и
+= -= *= /=
для вещественных.
- Подпрограммы с переменным числом параметров.
- Параметры по умолчанию.
- Вызов функций из неуправляемых dll.
- Ряд стандартных типов данных.
- Операция
new (ident := new type_name(params);).
- Операция
typeof .
- Директива компилятора
$reference
для подключения внешних сборок.
- Директива компилятора
$resource (пока только
для подключения графических файлов
в качестве ресурсов).
- Директива компилятора
$apptype для задания типа
приложения.
- Использование
uses для
подключения пространств имен .NET.
- Вид доступа
internal (наряду с public,
private, protected).
- Атрибут
final для запрета наследования от данного
класса.
- Инициализация переменных:
var a: integer :=
1;
- Инициализация переменных:
var a :=
1;
- Методы в записях.
- Символ
& для имен, совпадающих с ключевыми
словами.
- Интерфейсы
interface.
- Инициализаторы полей в классах и записях.
- Оператор
foreach (пока
не работает для обычных массивов).
- Оператор
lock.
- Объявление локальных переменных в блоке.
- Обобщенные классы (generics).
- События
event.
- Методы расширения.
Изменено
- Тип
string является строкой
произвольной длины.
- Индексация
string с 1, директива переключения на индексацию с 0.
- Описание виртуальных
функций требует указания ключевых слов
virtual,
override.
- Процедура
write
выводит любые типы.
- Индексные свойства с любым количеством индексов.
- Структурная эквивалентность типов оставлена только для делегатов
(процедурных переменных), динамических массивов,
типизированных указателей и
множеств.
- Множества на базе произвольных типов (
set of
string).
- Запрет использования указателей на управляемую память.
Выброшено
- Операции с указателями.
- Тип
complex.
Библиотеки
- Доступны все библиотеки платформы .NET
2.0.
- Изменения в модулях GraphABC,
ABCObjects, RobotTaskMaker, DrawmanTaskMaker,
PT4TaskMaker.
- Ликвидация модулей PointRect, Events, VCL,
Containers, Utils.