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)

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

Что есть нормальный редактор? Почему я для пистона должен использовать какой-то другой редактор, а не любой удобный/доступный? Хуже только Vim-фашисты.

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

оно покалечит их сознание раз и навсегда

Почему детей должны интересовать проблемы фанатиков-языкофобов?

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

Нормальный это тот, который поддерживает синтаксис. Делает за вас 4 пробела после : , при нажатии Backspace отступает на 4 пробела, при продолжении строки после запятой, например, ставит курсор в нужном месте по вложенности скобок, а по её окончании возвращается на исходный уровень вложенности. IDLE очень простой редактор, но всё это умеет. Vim тоже умеет, нужно просто настроить. Geany, Kate, Notepad++ и многие другие подходят. Просто нужно писать как принято в Питоне. В Питоне нельзя использовать форматирование в стиле C++ или Pascal.

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

В Питоне нельзя использовать форматирование в стиле C++ или Pascal.

А в TeX'е?))

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

Так разговор про обучение, а не про написание своих больших велосипедов?

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

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

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

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

И обучаемый получает абсолютно не нужные ему на практике знания по алгоритмизации на паскале.

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

P.S. Выразил в общем, это не лично в адрес собеседнику.

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

Почему деревянных мечи легче стальных? Эммм, плотность, физика, все дела, нет? Ну, а еще я учился фехтованию.

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

P.S. Я исключительно против Паскаля в смысле обучения, к слову.

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

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

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

Как только на Go запилят нормальный гуй, я сразу стану бешеным фанатиком этого языка.

buddhist ★★★★★
()

У меня циферблат на извращенометре разбился от перегрузки.

fornlr ★★★★★
()

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

Ахаха :-)

anonymous
()

Pascal.ABC

Не нужно. Учиться программировать можно и на FPC, и даже на Delphi (ну Qt, GTK+ или ещё что школьники вряд ли осилят).

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

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

Когда был школьником, PascalABC был глотком свежего воздуха после QBasic.

А идущие в комплекте примеры способны увлечь школьника программированием. Если бы не они (в первую очередь, рисовалка фракталов) — не писал бы сейчас тупняк на ЛОРе, так что сабж нужен.

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

Что-то вы ничего не понимаете или не хотите понимать. Программированию учат всех, а не только тех, кто будет исключительно этим себе на жизнь зарабатывать. Нельзя учить конкретному языку, всё равно самый популярный язык --- только 20% всех вариантов. Нужно учить алгоритмы писать. Для этого подходят Паскаль, Питон. Особенно с нуля. А Ява со своим «всё есть класс» не подходит, потому что это специфика Явы, которая только мешает. И C++ со своими указателями, заголовочными файлами и шаблонами не подходит. Особенно это тяжело с нуля. На 3-4 курсе студенты без существенных проблем переходят на C, Яву и даже Ocaml, но потому что они уже знают основные концепции: что такое переменные, процедуры и функции, массивы, записи, модули, указатели и даже классы. Но на 1 курсе так нельзя, потому что там за деревьями будет леса не видно.

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

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

Каким образом показывают? Я учился на бейсике, паскале, сях и не заметил, чтобы паскаль хоть чем-то лушче подходил для обучения. Только время тратится на набор этих идиотских begin/end.

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

воооот

а потом «обученные» головастики засирают трэды темой «у меня память течет» «в деструкторах не дают кидать исключения» «я везде натыкал shared_pointer патамушта я дурак»

«потому что они уже знают основные концепции: что такое переменные, процедуры и функции, массивы, записи, модули, указатели и даже классы»

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

Так это недообученные (а чаще всего неспособные к обучению) головастики. Дело в том, что эти товарищи, начни вы их учить сразу с C (или не приведи Боже C++), вообще программистами бы не стали. Вы им язык не тот дали, они не подходят для программирования на C++. Они НЕ СМОГУТ. Их удел --- Ява или Питон.

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

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

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

про
«у меня память течет» «в деструкторах не дают кидать исключения» «я везде натыкал shared_pointer патамушта я дурак»

вопят не те кто осилил паскаль, а те кто не осилил $language_name. а это два разных множества, хоть и пересекающихся. Пересечение - это те кто остановился на паскале.
Ну есть и такие, что сделаешь.

Просто осознай момент. Тебе надо объяснить человеку сортировку пузырьком. Давай, начинай с указателей и шаред_поинтеров. Ты потратишь уйму времени в никуда, а к сортировке это всё имеет весьма и весьма опосредованное отношение.

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

Адекватный программист найдет применение Паскалю

Не могу даже представить что такое «адекватное» применение PascalABC.NET, может приведёшь пару примеров?

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

Нельзя учить конкретному языку, всё равно самый популярный язык --- только 20% всех вариантов. Нужно учить алгоритмы писать. Для этого подходят Паскаль, Питон.

Почему не бейсик, фортран, PHP или даже си?

На 3-4 курсе студенты без существенных проблем переходят на C, Яву и даже Ocaml

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

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

За Паскаль АБЦ Нет не поручусь, потому что считаю его странным поделием. Но, может быть, ещё выстрелит подобно F#.

А про простой Паскаль --- сходи на Лурк, там есть неплохой список того, где нашёл применение Паскаль. Из игр могу накидать сходу ещё KAM Remake и Космические рейнджеры. Кстати, вот этот компилятор пользуется у нас спросом: http://www.mikroe.com/mikropascal/ На одном заводе, где наши студенты проходили практику после 3 курса, программировали AVR-ы на нём.

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

Я и не говорил, что Паскаль лучше подходит. Я сам Паскаль терпеть не могу. Но, вот, QuickBasic на начальных этапах, ИМХО, отлично подходил. Гораздо лучше, чем C++. C++ в 7 лет без базы — сложно освоить.

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

вполне можно обучать и на примере С/С++. вот только упоротым из 80х невдомёк, что на учить а не «концепции».

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

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

Английский проще чувашского? Чушь!!! Если, вы, не можете строить на английском сложноподчиненные предложения, то это не значит что это невозможно.

Is the English language simpler than the Chuvash language? Nonsense!!! If you aren't able to make complex sentences in English, it doesn't mean that's impossible.

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

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

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

Я вкуривал концепцию асинхронщины и ооп три года. Языки были с#, питон и js. И это не считая костылей в перле и пхп. Так вот, если бы мне в школе и вузе не засрали мозг паскалем, жить было бы легче. При этом, периодически встречаю адовый код погромистов на c# и js, написанный явно без понимания, почему так. Это все от незнания концепций. А, да, после паскаля цэ казался полным аналогом, но с контролем памяти. Опять же, после паскаля имеем все эти переполнения буфера...

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

Поэтому начинать надо с Хаскеля ;-)

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

Дело в том, что эти товарищи, начни вы их учить сразу с C (или не приведи Боже C++), вообще программистами бы не стали.

Так может это было бы и правильно. Входной барьер для отсева будущих говнокодеров. Кто его прошел, тем можно и Java и питон давать и все остальное.

Тем не менее, использовать-то их можно. Только инструмент нужен правильный.

Можно, а нужно ли? Может лучше сразу чем-то другим займутся, а «правильный инструмент» пусть используют для чего-то вроде небольших скриптов к своему текстовому редактору.

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

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

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

Проще --- с Python. Развращенные говнокодеры на PHP потом на любом языке будут писать PHP.

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

PyCharm. Другой, это какой? И в vim, и в emacs всё отлично. Если у твоего редактора проблемы с Python в 2015 году, это не редактор, а говно.

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

Хипстырь, штоле?
Затем, что «обучение программированию» и «выучивание синтаксиса языка программирования» — вещи настолько взаимоудалённые, что не пересекаются даже в бесконечности.

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

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

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

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

Я только не понял, почему в ваших проблемах Паскаль виноват? Или у вас как на Украине? В Паскале есть вполне нормальный ООП. Я им даже пользовался пару раз (не считая ГУЯ, который весь на этом построен), с наследованием и полиморфизмом. Можно писать виртуальные методы и переопределять методы родителя. Если под асинхронностью вы подразумеваете конкурентное программирование, то это тоже есть, хотя не очень развито.

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

Я учился на бейсике, паскале, сях

Проблемы с обучаемостью? Бывает.

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

Я тут как раз на днях Дикенса читал, ярко выраженный русскоязычный графоман с филологическим образованием, однако.

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

В Паскале есть вполне нормальный ООП. Я им даже пользовался пару раз (не считая ГУЯ, который весь на этом построен), с наследованием и полиморфизмом.

Гы-гы, на этот счет есть мнение, увековеченное в лорквотезах, что кто не видел SmallTalk-а, не знает, что такое ООП, там правда про Java, но годится и вообще:

Имхо, Smalltalk - это то, чему людей надо обязательно учить, прежде чем

показывать им Java.

Чтоб они знали, как было, как есть, и что они потеряли =)

GNU Smalltalk 2.2 (комментарий)

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