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

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

Он следует устоявшемуся правилу: «Кто не возводит в степень, тот паскаль»?

te111011010 ()

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

Vudod ★★★★★ ()

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

Зачем обучать языку, который с вероятностью близкой к 100% не будет востребован выпускниками на практике? Спрашиваю потому что меня тоже в своё время учили бейсику и паскалю хотя всем уже тогда было понятно что это пустая трата времени. Это наверное такая вечная особенность российского высшего образования - тратить время на изучения ненужного и не обучить даже основам необходимого для дальнейшей работы.

mbivanyuk ★★★★★ ()

Модули исполнителей Робот и Чертежник, используемых в школьной информатике.

Для этого есть КуМир.

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

Но в нем нет большого смысла. Лучше уж тогда накатить Lazarus/FPC.

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

Написано же, что используется для обучения программированию. Раньше, когда людей обучали фехтованию, использовали деревянные мечи, для детей ещё и уменьшенного размера. С вашей точки зрения нужно сразу фехтовать на настоящих. И пофигу, что больше 95% при таком подходе убьются на первых нескольких занятиях.

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

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

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

То есть если Си++ английский язык сложный то детям следует сначала выучить Паскаль чувашский? И неважно что он им не нужен, главное что он легче. Отличная логика, не в Министерстве образования трудитесь? ))

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

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

Кстати, ваша аналогия плоха тем, что 1 обычный язык у вас уже есть, а при обучении программированию человека нужно научить говорить вообще. Проще научить говорить на языке, который не заставляет его выворачивать речевой аппарат ради произношения сложных дифтонгов, редуцированных гласных, сложных смычных и прочей ерунды. На языке, в котором нет кучи взаимно пересекающихся временных форм, орфография которого дико непоследовательна, а грамматика убога настолько, что составление длинных предложений натыкается на существенные сложности, поскольку порядок слов менять нельзя. И придётся зубрить неправильные глаголы и неправильные формы множественного числа, все эти women, analyses, sheep и прочие. И это всё ради просто умения общаться. Да ещё и при том, что с вероятностью не менее 80% его собеседник этим языком владеть не будет и всё пропадёт впустую, потому что за пределами США и их заморских филиалов тоже есть жизнь.

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

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

А вот Ницше считал, что «изучение многих языков наполняет память словами вместо фактов и мыслей, тогда как она есть вместилище, которое у каждого человека может воспринять лишь определенную, ограниченную массу содержания.»

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

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

Fuck you.

anonymous ()

определение тел методов внутри классов

Шёл 2015 год.

cdshines ★★★ ()

Михалкович просто молодец, что пошел на это.

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

Это появилось как замена Turbo Pascal. А уже потом развилось в то, что есть. И да на замену это появилось потому, что Turbo Pascal надо было покупать, а денег в университете небыло. Это написал 1 человек (ну начал) для обучения детей программированию. Сомневаюсь, что тут есть хоть 1 человек кто на такое способен.

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

Давай решим, что сапоги будет точать сапожник. Михалкович преподаватель математики и программированию. Собственно не английского! Вот он и делает в рамках своей компетенции. Кстати я не слышал о гос финансировании этого проекта.

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

тратить время на изучения ненужного и не обучить даже основам необходимого для дальнейшей работы

Хреново ты учился, очевидно. На паскале учат основам. Но хипстерам не понять.

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

Не, ну раз ты так считаешь, то сто пудов именно так сделать и нужно.

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

Почему паскаль, а не scheme, python, scratch и его клоны, в конце концов? Паскаль не проще, менее выразителен и едва ли применяется на практике.

x3al ★★★★★ ()
  • Ряд расширений языка Pascal, в числе которых оператор foreach, внутриблочные описания переменных, автоопределение типа при описании, встроенные множества произвольных типов, упрощенный синтаксис модулей, методы в записях, операция new для создания объектов, определение тел методов внутри классов, безымянные классы, автоклассы, целые произвольной длины.
  • Самые современные средства языков программирования: обобщенные классы и подпрограммы, интерфейсы, перегрузка операций, λ-выражения, исключения, сборка мусора, n-мерные динамические массивы.

То есть это уже не паскаль как таковой, а язык с паскалеподобным синтаксисом.

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

То есть если Си++ английский язык сложный то детям следует сначала выучить Паскаль чувашский? И неважно что он им не нужен, главное что он легче. Отличная логика, не в Министерстве образования трудитесь? ))

Детям нужен C++? Может лучше бить их по голове?

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

Свистопляски с указателями можно и в поцкале проводить.

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

Почему паскаль, а не scheme, python, scratch и его клоны, в конце концов? Паскаль не проще, менее выразителен и едва ли применяется на практике.

Потому что python сложнее.

tp_for_my_bunghole ()

Паскаль? Спасибо, не надо. Потом вырастают придурки, которым begin/end нравится

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

Зачем обучать языку, который с вероятностью близкой к 100% не будет востребован выпускниками на практике?

Это наверное такая вечная особенность российского высшего образования

В Oxford University первокурсников обучают Oberon'у. В MIT долгое время использовали Scheme.

Where is your god now?

bignum ()

Жду хотя бы 78 доводов почему сабж эталонно не нужен

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

Я, кстати, не против. Сейчас некоторые коллеги пытаются перейти на Python3 в качестве первого языка. Это у них первый год. Посмотрим, что выйдет. Я уже несколько лет думаю об этом. Проблема Питона в том, что он слишком выразителен (это проблема при обучении, а не при работе, естественно). Если на Паскале вы, написав:

a := 3,5;
получите ошибку, то на Питоне
a = 3,5
получите кортеж. Следовательно, ошибка вылезет в том случае, когда вы этот кортеж станете дальше использовать. Это тяжело при обучении с нуля. Более того, вы можете потом умножить a на 3 и получить новый кортеж, а вовсе не 10.5, как вы хотели. И это отработает корректно. Строгая типизация и предварительное объявление переменных спасают от очень многих ляпов.

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

В пистоне нужно считать пробелы. Чуть где пропустил - всё, код не работает.

StReLoK ☆☆ ()

В знаменитой линейке софта *2C, в которую входят так нами любимые f2c/p2c, появилось пополнение - p2cs! :-)

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

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

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

Зачем в таком простом языке нужны пёрфект времена?

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

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

хотел написать это :)

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

Свистопляски с указателями можно и в поцкале проводить.

В нормальных программах на Паскале указатели не используются. У меня было 3 случая их использования, хотя я на Паскале эпизодически пописываю уже два десятка лет. Это: 1) создание связанных списков, 2) параллельное программирование с BeginThread, где функция передаётся в поток по указателю, 3) использование стандартной функции maxvalue из математического модуля для вычисления максимума части массива (для целого массива можно передать массив). Это маргинальные случаи, потому что списки в Паскале не часто используются, так как массивы можно расширять оператором setlength с гаранитрованным сохранением ранее положенных элементов. Параллельные программы мало где нужны на практике, особенно в специфике Паскаля. Максимум и минимум можно посчитать руками, а если нет, то часто нужно именно вычислить максимальное значение от всего массива.

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

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

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

Не только из-за покалечится. Например, они легче, а, следовательно, в малом возрасте проще технику осваивать. И много чего еще. А тупая сталь тоже не на много сильнее вредит, чем дерево.

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

Они там в действительности не нужны, смысловой нагрузки почти уже нет. Просто они получились и их используют. Как в немецком: в письменной речи используются Praeteritum, а в устной в том же самом случае --- Perfektum. Так сложилось.

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

Хреново ты учился, очевидно

Как ты это определил? И уверен ли ты, что твой уровень образования позволяет тебе вообще об этом судить?

На паскале учат основам

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

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

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

superuser ★★ ()

Еще бы портировали Blackbox из-под винды

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

Как раз хорошая. Более современный язык --- нет. Но не C++, PHP или Java. Потому что оно покалечит их сознание раз и навсегда. Как раз проблемы две: не поднимут и покалечатся.

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

Может быть с небольшими программами это и работает, но когда один пробел ломает охренительно большой и велосипедистый проект - это нифига не благо.

StReLoK ☆☆ ()
Ответ на: комментарий от superuser

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

Это зависит от специфики. Зачем вам понадобились указатели вообще? В современной практике нет необходимости работы с указателями, если вы не занимаетесь микроконтроллерами или системным программированием.

И, кстати, концепция простых и ссылочных типов в том же Питоне присутствует.

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

На паскале можно научить только основам паскаля

Не стоит рассматривать язык как религию :)

Паскалю учат не Паскалю, а теории алгоритмизации. Проще ее разжевать на Паскале, чем на C++/Java.

Это то же самое, что учить веб-технологии. Вначале надо понять основы. Проще — с PHP.

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

Нужно придерживаться установленного стиля кода и набирать программу в нормальном редакторе. И да, в Питоне невозможен 1 пробел. Их или 4, или 8 или 12 и т.д (иногда при продолжении строки возникает некратное число, но тут нужно писать строчки короче или положиться на редактор). Если у вас возник 1 пробел, вы сделали не так что-то самое главное.

Vudod ★★★★★ ()

[жыр]Обучать программированию нужно с Go![/жыр] А если серьёзно - то и правда Go. А сторонников крестов, жабы или какого-либо скриптового говна нужно бить палкой по голове.

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