PascalABC.NET 4.0

PascalABC.NET 4.0 — новое поколение системы программирования PascalABC.NET.

Главные изменения версии 4.0 — multitarget-поддержка .NET Framework 4.7.2 и .NET 10, официальное расширение PascalABC.NET для Visual Studio Code с IntelliSense и новая библиотека ML PascalABC.NET для анализа данных и машинного обучения.

Версия 4.0 сохраняет преемственность с PascalABC.NET 3.x, но существенно расширяет платформенные и инструментальные возможности системы.

Multitarget: .NET Framework 4.7.2 + .NET 10

PascalABC.NET 4.0 впервые поддерживает две целевые платформы:

.NET Framework 4.7.2 — классическая платформа PascalABC.NET, на которой работает основная среда разработки и существующая экосистема библиотек.

.NET 10 — современная платформа .NET с актуальным runtime и стандартной библиотекой.

Пользователь может выбирать target в зависимости от задачи, сохраняя один язык и привычную модель программирования.

Современные возможности .NET

Поддержка .NET 10 потребовала существенной переработки backend компилятора.

В новом target реализована поддержка managed references и ref-like типов, необходимая для полноценной работы с современными API .NET:

  • ref-return значения;
  • ref-like типы;
  • Span<T> и ReadOnlySpan<T>;
  • работа с диапазонами памяти без создания лишних копий.

Например, Span<T> позволяет представить часть массива или другого непрерывного блока памяти без выделения нового массива. Это важно для современных высокопроизводительных API .NET.

Таким образом, программы PascalABC.NET могут непосредственно использовать современные библиотеки и механизмы платформы .NET 10.

PascalABC.NET для Visual Studio Code

Для PascalABC.NET 4.0 создано официальное расширение для Visual Studio Code.

Расширение использует специальный Language Server, связанный с семантическим анализатором PascalABC.NET, и предоставляет:

  • подсказки по коду;
  • completion членов после точки;
  • Hover-информацию о типах и элементах программы;
  • Signature Help для процедур, функций и методов;
  • отображение ошибок компиляции;
  • компиляцию и запуск программ;
  • поддержку .NET Framework 4.7.2 и .NET 10.

Таким образом, PascalABC.NET теперь можно полноценно использовать не только в собственной среде разработки, но и в Visual Studio Code.

PascalABC.NET в Visual Studio Code: выбор target .NET 10, IntelliSense и запущенная программа

PascalABC.NET для Visual Studio Code →

ML PascalABC.NET

ML PascalABC.NET — новая библиотека для анализа данных и классического машинного обучения на PascalABC.NET.

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

загрузка данных → подготовка → обучение модели → оценка → визуализация

Библиотека реализована для PascalABC.NET и не требует внешних ML-библиотек.

Работа с данными

DataFrameABC предоставляет типизированные таблицы данных и основные операции:

  • загрузку CSV;
  • выбор и фильтрацию данных;
  • группировку;
  • объединение таблиц;
  • описательную статистику;
  • преобразование данных для алгоритмов машинного обучения.

Подготовка данных

ML PascalABC.NET включает инструменты preprocessing:

  • заполнение пропущенных значений;
  • масштабирование числовых признаков;
  • кодирование категориальных признаков;
  • One-Hot Encoding;
  • PCA;
  • построение последовательностей преобразований с помощью pipeline.

Машинное обучение

Библиотека содержит основные алгоритмы классического ML для:

  • регрессии;
  • классификации;
  • кластеризации.

В их числе линейные и логистические модели, kNN, деревья решений, Random Forest, Gradient Boosting, K-Means и DBSCAN.

Также имеются метрики качества, cross-validation и средства проверки моделей.

Линейная алгебра

В состав ML PascalABC.NET входит собственное численное ядро с векторами и матрицами, решением систем линейных уравнений и основными матричными разложениями.

Датасеты

Вместе с библиотекой поставляются готовые датасеты для учебных примеров и экспериментов:

  • iris.csv — классический набор Iris;
  • mnist_small.csv — компактная версия набора рукописных цифр MNIST;
  • moscow_housing.csv — данные о московском жилье;
  • russian_cities.csv — данные о российских городах;
  • titanic_ru.csv — русскоязычная версия данных Titanic;
  • used_cars_price.csv — данные о ценах на подержанные автомобили.

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

Сайт ML PascalABC.NET →

Почему 4.0

Номер версии 4.0 отражает не отдельное изменение синтаксиса языка, а переход всей системы PascalABC.NET на новое поколение.

В одном релизе появились три крупных направления:

Multitarget
.NET Framework 4.7.2 + .NET 10.

Visual Studio Code
Новая полноценная среда работы с PascalABC.NET с semantic IntelliSense.

Machine Learning
Собственная библиотека анализа данных и классического ML.

При этом PascalABC.NET 4.0 сохраняет совместимость и преемственность с существующим языком PascalABC.NET и его учебными материалами.

PascalABC.NET 4.0 объединяет простоту современного Паскаля, зрелую среду .NET Framework и возможности современной платформы .NET 10.