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

В Паскале есть вполне нормальный ООП

И тут я понял что ты реально весёлый человек с отличным чувством юмора. Вполне нормальный ООП в Паскале, ну насмешил ))

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

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

Если об Object Pascal, без .NET/Mono:

Модульность кода. Строковые типы. Динамические массивы. Case insensitive. Оператор просвоения(:=) отличается от сравнения(=). Рекордно быстрая скорость компиляции кода, мегабайты кода компилируются моментально, позволяя работать как с интерпретатором.

ООП ещё в начале 90-х в Turbo Pascal.

tp_for_my_bunghole
()

Моя история успеха BASIC (~6-7 класс) -> Pascal (10 класс) -> C (1 курс, 2-й семестр)

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

Несмотря на обилие модных языков, отрицать нужность Pascal'я не стОит.

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

И тут я понял что ты реально весёлый человек с отличным чувством юмора. Вполне нормальный ООП в Паскале, ну насмешил ))

Если ты всё остальное так же понимаешь, то ясно с тобой, как учил и C, и паскаль, и бейсик.

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

Сто лет назад русские отлично осваивали артикли в французском - а там веселее с артиклями и предлогами, падежи бесят в немецком (хотя в эстонском их больше, по мне употребление проще)

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

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

Хорошая аналогия. Учебный язык нужен для ознакомления с принципами программирования. Учащиеся должны достигать успеха с разумной затратой сил. Независимо от того, станут они профессиональными программистами или нет. Если взять сразу профессиональный язык (типа C++) то учащиеся утонут в подробностях и впредь будут избегать программирования.

Те, кому случится стать профессиональными программистами со временем получат профильное образование или сами изучат свои профессиональные инструменты.

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

Сто лет назад русские отлично осваивали артикли в французском - а там веселее с артиклями и предлогами,

Я не знаю французского, там может быть и веселее, но освоить в конечном итоге проще.

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

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

А судьи кто? — За древностию лет К свободной жизни их вражда непримирима. Сужденья черпают из забытых газет Времен Очаковских и покоренья Крыма.

Вот как-то так :) - то есть все украдено до нас

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

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

А где её нет?

Динамические массивы.

Как это влияет на обучаемость?

Case insensitive.

А это минус, учитывая что 99% языков и даже ФС case sensitive. Потом переучиваться?

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

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

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

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

Какой практике? 90% учеников НИКОГДА не будут программировать.

Когда тебя «учили бейсику» то программы были очень простыми:

Screen 7 
Line (10,10)-(100,50),15,bf
Circle (55,30),20,12
Paint (55,30),12,12

Без всяких include/uses/import и остальных кракозябр, совершенно не понятных ученикам.

А целью сего процесса было не обучение 100500 программистов, а развитие мозга подопечных.

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

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

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

Я тоже.

и не заметил, чтобы паскаль хоть чем-то лушче подходил для обучения

А я заметил. Паскаль после бейсика - красота, мощь, концептуальная целостность. Си после паскаля - набор костылей для роботов.

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

Понятно, чему ты «учился».

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

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

Не видел, каюсь. Правда, дело не в этом. Человек указывает мне, что вот в Яве и крестах есть нормальный ООП, а в Паскале нет.

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

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

после паскаля имеем все эти переполнения буфера...

Скажите... а церковь тоже паскаль развалил?

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

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

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

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

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

Популярно повторяю для невежд... В университете уже была учебная программа утвержденная кстати в которой фигурировал Turbo Pascal. Вопросы почему не FoxPro еще есть?

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

Ок, классическая алгоритмизация без современного программирования - зло. Паскаль тут при том, что не помогает освоить то, что за пределами.

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

Ну я и По читал. Но если почитать Шекспира, все становится проще.

Да неужели? А ты его действительно читал, или просто так чепуху несешь?

Даже если учесть, что трагедии Шекспира предназначены в первую очередь для постановки в театре, и, поэтому, реплики актеров должны быть близки к разговорной речи, а не к развернутым письменным предложениям, открываем первую попавшуюся (Гамлет) и читаем:

Sit down awhile;
And let us once again assail your ears,
That are so fortified against our story
What we have two nights seen.

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

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

Я нахожу, что во французском как раз с артиклями проще, потому, что они регулярные, в отличие от английского, где система артиклей выродилась в «a», «the» и нуль-артикль, и употребление поэтому страдает от случаев типа один пишем, два в уме. Расскажи-ка, чем артикли во французском сложнее, лингвист ты наш?

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

так и запишем

Vudod ★★★★★ (13.09.2015 17:45:59) пидораха

кстати, раз ты у нас такой вумный противник «убогой грамматики, где порядок слов менять нельзя», то тебе не составит никакого труда показать подлежащее и сказуемое в таком вот предложении на Великом и Могучем Русском Языке: «дни сменяют ночи».

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

Что-то портировали в рамках проекта OpenBUGS

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

Скажите... а церковь тоже паскаль развалил?

У меня есть ощущение, что да. Вот раньше все туда ходили и не думали зачем. А теперь ходят только те, кому надо.

Так и с Паскалем. Студент на 1 курсе приходит и начинает писать, а ты его думать заставляешь, что он пишет. А вот при обучении на сях --- красота. Начиная с хэлловорда:

#include <stdio.h>
int main() {
    printf("Hello, world\n");
    return 0;
}
Зачем
#include <stdio.h>
? --- так надо. Кто такой
main
и почему он
int
? --- это так главная программа, так надо, не думай об этом. Что такое «\n»? --- символ конца строки, но почему он состоит из 2 символов? --- потому что он невидимый на самом деле, в общем, так надо! Что такое
return 0
? --- Это возврат значения из функции, ну то есть главной программы? А что ты хотел вернуть, 1 что ли? У тебя же программа завершилась корректно. А что такое возврат значения и куда? Так надо, ты что не понимаешь, вон там строчка есть, она «Hello, world\n», тьфу, «Hello, world» выводит, что тебе ещё надо?

Вот такая вот религия получается.

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

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

Об этом Вам стоит спросить дяденьку Николаса Вирта.

argv_0_
()

Тыкал это поделие, когда знакомый школьник знакомого попросил помочь с домашкой. 6 мб загрузки и получаешь среду не отстающую от VisualBasic 6, занимавшего целый компакт-диск ☺

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

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

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

+1. Осталось привести пример с рисованием эллипса на С++

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

Настоящей модульности нет в C/C++/Java. Есть в Паскале и его наследниках (доведена до абсолюта в Component Pascal), и части языков ML семьи.

Case insensitive --- не влияет ни на что, потому что переменные надо назвать понятными именами, а стилистика написания имени это договор определенного сообщества.

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

Case insensitive --- не влияет ни на что, потому что переменные надо назвать понятными именами, а стилистика написания имени это договор определенного сообщества.

Это, кстати, не очень удобно. Потому что в математике принято писать n=1 .. N. Но в Паскале и Фортране большие и маленькие не различаются и приходится порождать что-то типа nn.

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

бгг, какая чушь. как правило, русские, привыкшие к своему родному недоязыку, не способны сказать на английском ничего сложнее «fuck you motherfucka».

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

ага, то-то его большая часть рашки не может осилить несмотря на 9-летнее ежедневное вдалбливание, кек.

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

Что такое «настоящая» модульность и зачем она тому кто учится программировать?

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

Не спорю, тут можно и скайп вспомнить даже, но обучать ему в 2015 году?

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

На .NET его помоему году в 2005 переписали. Первоначально он под DOS был как замена Turbo Pascal. Поищите там должен архив быть.

dmxrand
()

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

aserge
()

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

А ведь могли бы сразу изучать С#. Глядишь бы потом пригодилось, но у нас видимо не могут.

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

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

Как учить тому же ООП, если человек процедурного программирования не знает? Всё равно начинать надо с него (или с функционального, но не в этой реальности). Возьми хоть самый современный язык - начинать будешь с примитивных основ. Которые и есть тот же паскаль (в его классической версии).

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

anonymous
()

почему паскаль, а не модула(2|3)? Она намного проще даже паскаля.

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

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

Два чая этому господину!

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

А где её нет?

Даже в жабаскрипте с этим всё плохо, лол.

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

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

Aswed ★★★★★
()

диалект языка Pascal для платформ .NET и Mono

закопайте нафиг. есть Lazarus и Free pascal который может даже в arm и его достаточно для обучения программированию.

anonymous
()

.NET и Mono

Нет.

Ламповые треды с тегом «pascal».

Helltar
()

Никак не пойму почему на ЛОРе всё время разгорается срач на пустом месте. Стал ещё один компилятор ещё одного ЯП открытым. Это прекрасно. Кто-то его использует. Это тоже прекрасно. Я сам учил Бейсик->Си->Паскаль... Паскаль легче Си и , пожалуй, его надо было изучать раньше. Но это не принципиально. О самом Паскале у меня остались очень приятные воспоминания. Для обучаемого лучше учиться имхо на паскале чем на Си или Питоне. Си просто базово сложней. А Питон не имеет статической типизации как уже было упомянуто (а это на этапе обучения имхо важно). А вообще основные навыки программирования можно получить на любом языке. И лучше чтобы он был простым, понятным и не позволял излишние вольности. Паскаль этому вполне соответствует.

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

То есть если Си++ английский язык сложный то детям следует сначала выучить Паскаль чувашский?

Сначала лучше эсперанто. Но это в идеале.

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

Сходи бабушке своей шутку расскажи, ей понравится.

))

Долбоёб ))))

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

нет это печально.

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

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

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

базировать свои разработки на .NET и Mono - это тупик. какие то бурления по поводу портирования на Linux есть, вот скоро вот уже полноценная среда CLR для промышленного применения, а по факту только в лужу пердят. все проекты кроме шарпа загибаются и устаревают. сам моно не поспевает и представляет собой огрызок он .NET.

а завязыватся чисто на windows и .NET - кому это надо? когда есть лучшие кроссплатформенные альтернативы.

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