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)
Ответ на: комментарий от vurdalak

А где её нет?

В Си нет. И в C++ нет. От слова «вообще». Раздельная компиляция - это лишь один из элементов модульности. Только сейчас, наконец, люди начали шевелиться с попытками добавить в кресты нормальные модули, удачи им.

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

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

Лолнет. Удобнее 'is'.

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

Явное лучше неявного. Дискасс.

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

Нет, не логичнее.

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

Пожалуй, единственный адекватный аргумент.

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

А зачем она вообще, если можно сделать (mul 3 4) ?

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

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

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

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

Я, слава Богу, пока ещё не в семинарии работаю, а в университете. Хотя обучение будущих батюшек программированию было бы интересным экспериментом.

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

См. мой пост выше про религию. Там было про си, но и тебе подходит.

Этот пуризм - тоже какая-то религия. Ага, в си и яве для новичка есть немного магии. И поэтому они не подходят для освоения алгоритмов? :/

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

Между прочим, в старом си можно не писать int и include, а в новом - return. А вместо printf есть puts.

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

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

'is' в pascal проверяет класс объекта, if Object is Class

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

Явное лучше неявного. Дискасс.

В определении функции явно определяется что она берет указатель на переменную как параметер, procedure change(var x, y: integer); В вызове функции просто указываются имена переменных, change(a, b); В теле функции параметры используются без явного dereference.

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

Да, логичнее.

А зачем она вообще, если можно сделать (mul 3 4) ?

«Write only» language.

...

Pascal это модульное программирование. Автоматическая проверка согласованности интерфейсов(units), что ещё ускоряет компиляцию на порядки.

Язык C(++) это подстановка текста кода. Одно пространство имён(кроме static), «ручной» режим проверки соответствия заголовочных файлов(интерфейс который каскадно вставляется как текст) и их реализаций.

tp_for_my_bunghole
()

Хотя именно в этой реализации, PascalABC.NET, нет смысла.

Free Pascal в версии 3.0 почти готов, RC1.

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

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

А в присваиваниях удобнее одно «=» чем ":=". Этот разговор ни о чём.

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

А вот это жирный камень в огород паскаля, да. Зря я не вспомнил.

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

Логичнее чем где?

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

имхо, аналогия нелепая. Гораздо более уместная аналогия - курс греческого/латинского/древнерусского/esperanto в школе или на ин.-язе в универе. Не все языки изучаются для того, чтобы на них писать на практике, например: Assembler, Pascal, Lisp/Haskell...

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

Полностью согласен с ниже обругавшими тебя анонимусами.

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

То, что питон зависит от пробелов, это его недостаток.

То, что питон зависит от пробелов - его достоинство. Жопорукие писатели неконсистентного говна могут оставить своё мнение при себе и идти строчить любимые end'ы в на каком-нибудь Ребе.

anonymous
()

программировать в паскале, переведенном в дот-нет - удел лузеров и нищебродов, путь пьяной от стекломоя ваты которая не видит своего будушего и так и состарится в унылом свитере с оленями и с потрепанной книжкой Абрамовой и Зимы, униженно расставляя везде begin-ы и end-ы

Настоящие пацаны кодят на чистом шарпе.

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

ПАЦАНЫ, Я СЕГОДНЯ ШЁЛ КОРОЧЕ ПО УНИВЕРУ И УВИДЕЛ СТУДЕНТА В МАЙКЕ «ПАСКАЛЬ ABC», НУ Я ПОДСКОЧИЛ... ТОЛЬКО СИШАРП, ТОЛЬКО ХАРДКОР!

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

Странно. А рассуждаешь как в церковно-приходской школе.

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

Мозгов нет в таком возрасте на грамотное изучение ПК. Где ты семилетних первоклашек видел, которые программируют?

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

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

а ты какой из алфавитов учил? а то их там несколько

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

вначале было слово. потом его eval/apply.

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

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

а затем спасение придёт, и релиз.

и т.п.

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

путь пьяной от стекломоя ваты которая не видит своего будушего и так и состарится в унылом свитере с оленями

Будто что-то плохое.

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

Гораздо более уместная аналогия - курс греческого/латинского/древнерусского/esperanto в школе или на ин.-язе в универе.

у оберонщиков на сайте информатика21 интересная тема есть про обучение латинскому и греческому в русской империи конца 19 века. например, ещё тут.

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

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

тогда как она есть вместилище, которое у каждого человека может воспринять лишь определенную, ограниченную массу содержания

ты не поверишь, но оно тренируется. и масса прокачивается.

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

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

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

ну и т.п. и т. д.

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

Не знаю, где ты в 80-ых в школе в первом классе программировал, может ты из США и учился в какой-то особо привелигированной школе, но в середине 80-ых на близлежащий завод всесоюзного значения привезли первый ПК и все смотрели на него, как на шайтан-кообку. Не надо ля-ля про то что ЭВМ в СССР были доступны народу (это ты внукам своим лапшу на уши вешай) даже цветной телевизор был роскошью.

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

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

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

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

а ты какой из алфавитов учил? а то их там несколько

Хирогану, по книжке «японский для души». Плохо в их буквах то, что как несколько дней их не позубришь, так и забудешь.

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

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

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

Учат не языку, учат программированию. Если человек этого не понял, он не программист.

А кто является «программистом» в твоём понимании? Обычно так любят себя называть неудачники, которые ничего стоящего написать не способны и вынуждены учить школьников программированию за 150$ в месяц. Они любят порассуждать об «алгоритмах» и «программировании» просто потому что на практике ни на что не способны, а овладеть например Си и начать писать код для какого-нибудь проекта ума не хватает. Такой публики полно и в вузах, особенно провинциальных. Рассуждать об алгоритмах же ума много не надо, особенно когда рассказать о чём то другом не хватает квалификации. Вот среди них то паскаль и популярен по понятным причинам. В этом понимании я конечно не программист, уступаю тебе это гордое звание.

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

Так хорошо учил, что не можешь правильно название написать. А про забудешь - вранье. Выучил обе за месяц, как-то не повторял ни разу с тех пор, а вот как-то помню, хоть и читаю сейчас редко. Было бы желание. Если его нет, начинаются левые отмазы про сложность (мнимую кстати)

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

Для тебя мужчина - это синоним тролля? Всё понятно.

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

Нормальный это тот, который поддерживает синтаксис.

Если по образованию, то нормальный редактор - это отдельный курс, который вытекает... . Если по языкам, то как быть тем старперам, у которых редактором выступала тетрадь? А клавы стоили, как комп?

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

Не знаю, где ты в 80-ых в школе в первом классе программировал

Если рядом был шефствующий завод или институт - вполне мог, всё зависело от энтузиазма и доброй воли. У нас в 8 классе (1985 год) был кружок на базе институтской кафедры, не ПК, но ЭВМ Мир-2, довольно оригинальная для своего времени. Кстати, по назначению это был именно ПК для инженера, правда, занимал шкаф.

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

На заводе - сильно сомневаюсь. ПК, конечно, были в новинку, но вообще-то, ЭВМ уже много лет как делали и свои, и клонированные.

Не надо ля-ля про то что ЭВМ в СССР были доступны народу (это ты внукам своим лапшу на уши вешай)

Смотря в каком СССР. Где-то в середине 80-х ПК как раз и начали массово выпускаться: Микроша, БК, в 88-м «Партнёр». Всё это, конечно, 8-разрядная техника, но учиться программированию вполне можно было.

даже цветной телевизор был роскошью

Ну насчёт роскоши это ты загнул, но их было намного меньше, да. Цветопередача было просто хреновой, пока не начали делать модели с самосведением лучей (а это как раз год примерно 85-й).

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

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

Зато оставшиеся 5% калек будут Ъ.

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

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

Обучение несовершеннолетних С++ надо приравнять к педофилии

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

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

Надо обучать бухать и бить морду. Понадобится с вероятностью близкой к 100%

anonymous
()

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

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

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

Когда мы рассматриваем случаи предлог de + артикль, и случай исчисляемого и не исчисляемого существительного, в форме единственного или множественного - запутаться очень легко.

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

Надо обучать бухать и бить морду. Понадобится с вероятностью близкой к 100%

Срочно в ПТУ!

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

у оберонщиков

Они ещё не вымерли? В таком случае надо им помочь.

rupert ★★★★★
()

По поводу того, что Паскаль плох для обучения и знания, полученные в ходе изучения данного языка, применить будет негде: Не считая сурового «ентерпрайза», где Паскаль применяется до сих пор, просто посмотрите, на чем написан Pascal.ABC и кем (ссылка на сайт и гитхаб имеется). Как я понимаю, вся команда программистов начинала с этого самого Паскаля (причем ABC)...

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

Настоящие пацаны кодят на чистом шарпе

Возможно. Но настоящие программисты пишут на C++ и C.

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

Обучение несовершеннолетних С++ надо приравнять к педофилии

Почему? Ну почему в этой стране так не любят этот прекрасный язык?

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

Странно, что детей учат сразу на родном языке говорить.

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