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)

Ответ на: комментарий от anonymous

каждый распоряжается своим временем по своему усмотрению. Они вот свой ЯП пишут. А мы с Вами на ЛОРе...

Tarian
()
Ответ на: комментарий от Lincor

Почитай spb times. От сложносочиненных 'калек' с вычурного журналистского русского голова болит. Тут выше цитаты из классиков - вовсе не ад сложнососиненных предложений, а простой английский язык. Это русскоязычные его усложняют.

Shadow ★★★★★
()

Игровой движок на нём уже написали?

Napilnik ★★★★★
()

Среда разработки работает только под Windows

не нужно.

Который третий через пень колоду запускается в вайне - детишек пугать паскалем :)

anonymous
()
Ответ на: комментарий от mbivanyuk

бейсик проще, понятнее и популярнее

согласен, а вообще по алгоритмам - кумир

anonymous
()
Ответ на: комментарий от vurdalak

Только время тратится на набор этих идиотских begin/end.

у тебя, наверное, и переменные называются x18, n26 и a143, чтобы времени на набор длинных имен не тратить?

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

Свободная реализация — Free Pascal — уже длительное время практически не развивает язык и содержит катастрофически устаревшую консольную IDE, ориентированную на MS DOS.

ну конечно давайте сделаем свой язык потому что у нас нет IDE.

Geany

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

вот автор поясняет как одну из причин.

Свободная реализация — Free Pascal — уже длительное время практически не развивает язык и содержит катастрофически устаревшую консольную IDE, ориентированную на MS DOS.

Автор ничего не слышал про Lazarus?

Update, почитал - слышал и даже упоминает его. Но чего он придрался к среде для FP - так и не понял. Ее вообще могло и не быть даже совсем.

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

Почитай spb times. От сложносочиненных 'калек' с вычурного журналистского русского голова болит.

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

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

Ну вот он решил написать свой велосипед. Не нравится ему Лазарус. И язык ему не совсем нравится. Дело, в принципе, годное, но для обучения программированию это уже годится гораздо меньше. Это скорее попытка сделать аналог паскаля для среды .NET. Хотя есть уже Zonnon.

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

Почему паскаль, а не scheme, python, scratch и его клоны, в конце концов?

Кто будет всему этому учить? В паскаль за это долгое время учителя, кмк, уже научились.

anonymous
()
Ответ на: комментарий от Vudod

Им надо как-то иначе назваться. Потому что к Паскалю это имеет очень опосредованное отношение

а «PascalABC.NET» для вас недостаточно сильно отличается от «Pascal»?

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

Кто будет всему этому учить? В паскаль за это долгое время учителя, кмк, уже научились.

Проводил в 11 году переобучение учителей информатике в одном из районов. Всё плохо. Если из райцентра ещё знают про алгебру логики, то в сёлах ничего никто не знает и не умеет. В школе стояла Убунта и fpc + geany. Денег нет, к тому же на Линуксе не играют в игрушки (в это верит учительница, я переубеждать не стал).

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

если будущий специалист то ему такие знания только во вред потому что потом придётся переучиваться и ломать стереотипы.

В таком случае любой язык формирует стереотипы, он паскалевские наименее опасны для императивщиков.

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

А Ява со своим «всё есть класс» не подходит

Там далеко не всё есть класс. И кстати, её так же используют как первый язык.

bbk123 ★★★★★
()

Никлаусов полон тред. Оберонщиков что-то не видно, надо позвать.

anonymous
()
Ответ на: комментарий от Quickern

А тупая сталь тоже не на много сильнее вредит, чем дерево.

Ломик по кумполу, например. В бронзовом веке и тупыми бронзовыми мечами убивали. Плохо когда меч гнётся при каждом ударе, а не когда тупой да по незащищённому телу.

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

Сэджвик плохого не посоветует

Нужно учить алгоритмы писать

Ява со своим «всё есть класс» не подходит, потому что это специфика Явы, которая только мешает

Да не мешает, достаточно выучить заклинание «паблик статик борщ^W чтотамдальше», и будет обычный процедурный язык. И теоретики, и практики довольны.

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

Старые версии вроде были раньше на сайте. Надо понимать, что это продукт 15 лет развития. Готовы методические пособия, сотни примеров. Написаны библиотеки. Более того студенты привлекались к развитию этого компилятора. Яб не сбрасывал его со счетов. Он и в коммерческих конторах мог бы найти применение. Я еще давно предлагал его открыть, но уже не помню что мне ответили на это.

dmxrand
()
Ответ на: комментарий от Shadow

Английский очент прост

Настолько прост, что разобрать, какие же слова мычит собеседник не всегда легко. Нет в английском той чёткости произношения и написания как в японском.

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

Именно что после деревянного, потому что порезаться можно и тупым стальным молотком, потому что он тяжёлый и быстрый.

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

Ты ещё и японист?!

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

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

Тогда просто скажу, что грамматика в японском намного сложнее, чем в английском и сравнима с русской по объёму, при этом во многих местах ничерта не похожа на то, что есть в европейских языках, что усугубляет проблему. К счастью, она агглютинативная. Ну и кандзи, да. Произношение английского легче, чем это.

Простая фонетика — это, конечно, есть. И отсутствие силового ударения помогает обеспечить принцип «как слышится, так и пишется» с буквально 2.5 исключениями (は/へ/を), за вычетом кандзей. Но эта фонетика усугубляет проблему омонимов и в итоге в японском может быть десяток одинаково произносимых слов, означающих разные вещи и пишущихся, соответственно, разными кандзями (а в разговорной речи — иногда заменяются синонимами, например, из того же английского, поскольку иначе ничерта не понятно).

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

Для обучения структурному программированию. Мою коллегу из Штатов мучили в университете Адой.

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

даже Ocaml

Вот уж лучше с него начинать обучение тогда. Никаких #include, int, main, а так же begin и end Только алгоритмы в чистом виде.

Все довольны.

anonymous
()
Ответ на: комментарий от mbivanyuk

Ещё его (точнее паскалеподобный синтаксис) можно использовать для частичной формализации алгоритмов. Но только как псевдоязык.

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

вообще программистами бы не стали

Это было бы просто замечательно.

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

Модульность кода.

А где её нет?

В C и C++.

Оператор просвоения(:=) отличается от сравнения(=).

В сях, джаве, питоне, пхп тоже.

Терминальный символ один и тот же.

Чаще приходится объяснять что такое C и Pascal тем кто отдаёт предпочтение одному из них, но ни один из них не знает.

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 2)
Ответ на: комментарий от vurdalak

В каком смысле? Когда := и =, это хуже чем = и ==? Чем?

Не хуже, но в сложных условиях удобнее одно «=».

Потом разделение на процедуры и функции.

Определение параметров процедур/функций как ссылок, функция/процедура получает всегда указатель. В C всегда явное использование указателей в определении, вызове и теле функций.

Обозначение указателей в Pascal логичнее ^Longint;

Адрес переменной или процедуры @SomeName;

Звездочка * только умножение.

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)

Pascal... используется для обучения программированию...

Аксиомы для детишек:
Дедушка Вирт плохому не научит.
Лучше быть паскалистом, чем поней.
Настоящий программист может на любом языке написать FORTRAN программу.

P.S. :)

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

Настоящий программист может на любом языке написать FORTRAN программу.

Я бы поспорил: на intercal это довольно сложно сделать.

x3al ★★★★★
()

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

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

на intercal это довольно сложно сделать.

Для «Ъ-програмиста» сложно != невозможно :)

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

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

В Германии, Бразилии, Индонезии, Китае, и т.д.

Проблема не в паскале, а в лишней хромосоме учеников и низких зарплатах учителей которые не научат ничему, вне зависимости от языка.

tp_for_my_bunghole
()
Ответ на: комментарий от mbivanyuk

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

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

Первое. Не надо валить в одну кучу бейсик и паскаль. Бейсик, несмотря на слово Beginners в аббревиатуре изначально предназначался не для начинающих программистов, а для тех, кому надо что-то накодить для себя с минимумом обучения. Сейчас для расчётных задач, я считаю, ниша бейсика полностью съедена математическими пакетами, и если бы Билл Гейтс не поддержал любимый язык своей юности, про него бы уже мало кто помнил. В противоположность этому, паскаль изначально создавался для обученя программированию вообще и хорошему стилю программирования в частности.

Второе. Учат не языку, учат программированию. Если человек этого не понял, он не программист. «Программист на языке N» - это оксюморон. После того, как человек освоил проектирование алгоритмов и структур данных на паскале, у него и C++, и Java пойдут хорошо. Различия между паскалем и Си намного меньше, на самом деле, чем между программой с линейной логикой и программой, управляемой событиями, например.

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

Указатели на самом деле - не самое коварное, что поджидает начинающего сишника. Когда человек применяет указатели, он, по крайней мере предупреждён.

Вот отсутствие модульности и костыли, которые применяются в C и C++ для её имитации - это очень весёлая тема, которая даёт довольно много способов неискушённому программисту выстрелить себе в ногу.

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

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

Бейсик очень распространен в энтерпрайзе.

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