LINUX.ORG.RU

PascalABC.NET стал свободным ПО

 , ,


2

2

PascalABC.NET — диалект языка Pascal для платформ .NET и Mono, а также компилятор и среда разработки для него. Разрабатывается в Южном Федеральном Университете и используется для обучения программированию. Среда разработки работает только под Windows, но компилятор работает и в GNU/Linux под Mono.

Долгое время проект имел проприетарную лицензию (распространялся при этом бесплатно), но 28 августа 2015 года (одновременно с выпуском версии 3.0) переведён на GNU LGPL.

Особенности (с официального сайта):

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

Репозиторий на GitHub

>>> Подробности

★★★★

Проверено: fallout4all ()
Последнее исправление: fallout4all (всего исправлений: 10)
Ответ на: комментарий от yars068

Но нужность сабжа не отрицаю,

Ну а чем он лучше существующего free pascal? Компиляцию в .NET трудно назвать преимуществом, платформ поддерживает меньше (Mono идёт на всяких BSD например?), IDE бесполезно, поскольку не кроссплатформенно. Разве что задачник, но он тоже проприетарный и кажется только под винду.

Xenius ★★★★★
()
Ответ на: комментарий от yars068

Выше шла речь о (не)нужности Паскаля вообще, а это как-никак диалект, хоть и с недостатками.

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

Но раз уж сам Вирт придумал что-то, что считает лучше, зачем продолжать насиловать труп паскаля? Можно было бы хотя бы синтаксис взять из более новых языков — отказаться от begin как в lua, так как всякие for или while уже подразумевают его сразу после условия и вообще упростить синтаксис.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Xenius

отказаться от begin... упростить синтаксис.

Ну, это да, но в тех же сях аналогичную цель (группировка операторов) преследуют фигурные скобки. Разве что запись короче:) Не думаю, что это такой уж фатальный недостаток.

yars068 ★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от Xenius

Паскаль нужен как и всякое legacy типа фортрана, чтобы запускать тонны уже существующего софта

Только вот тонны эти имеют разный характер: у фортрана это высокопроизводительные реализации расчетных алгоритмов, а у паскаля - формочки из делфей

annulen ★★★★★
()
Ответ на: комментарий от Xenius

FreePascal? Да, неплохой по функциональности язык, но... Монстр. К сожалению, нормально не умеющий Package. Как следствие, загнать классы (а также его rtl) в .so-файл (ну, или в dll на оффтопике) пока малореально. Следствие - огромный размер бинарников, особенно если их надо сделать несколько с близкой функциональностью. Так что невольно возникает желание смотреть в сторону версии 1.0.10, которая была куда меньше, но была куда легче, да и с библиотеками проблем было меньше. Другое дело, что функциональность и средства разработки там оставляют желать лучшего... PABC.NET плох его несовместимостью (исходя из измышлизмов автора, может, даже и логичных, но есть стандарт де-факто) с возможностями FreePascal и Delphi (те же типизированные константы: обычно пишут const i:integer=10; а в PABC.NET - const i:integer:=10), так что адаптировать имеющийся код - та ещё задача. К тому же, ifdefы там хоть и есть, но не на высоком уровне. Что же до сравнения паскаля с си... Кому как. Си - язык для внимательных. Тому, кто подпадает под стереотип «рассеянного учёного» из американских фильмов, лучше к С не подходить, будь он без плюсов, с плюсами или даже с решёткой. И нестрогая типизация - всего лишь цветочки. Как и возможность ставить присваивание вместо сравнения в условный оператор. Ну и до кучи - инкременты внутри выражения (13 или 14?). Ну да, отсутствие модульной структуры позволяет сделать из программы «спагетти» и неправильной последовательностью include превратить рабочий код неизвестно во что, не говоря о скорости компиляции программ (для паскалиста, не сталкивавшегося с C++, компиляция серьёзного проекта в течение получаса - это такая шутка). Но главное - повсеместное использование макросов. Да, макросы - очень мощное средство, позволяющее практически превратить один язык программирования в другой. Но использовать их для констант или мелких процедур - это как забивать гвозди микроскопом. Чуть что не так - и всплывёт это совершенно в неожиданном месте.

FoodChemist
()
Ответ на: комментарий от Xenius

Mono идёт на всяких BSD например?

Mono на FreeBSD идёт абсолютно точно. Собирал как-то на ней OpenSim, который на Mono писан.

А задачник - это что?

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

А задачник - это что?

Не знаю, кажется в сабже есть такое приложение с задачами на программирование. Посмотри на официальном сайте.

Xenius ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.