LINUX.ORG.RU

Встречайте новый язык программирования — Sifflet 1.0

 , , sifflet,


0

1

Первая версия визуального функционального языка программирования Sifflet отныне доступна на hackage.

Назначение этого языка — помочь студентам познать рекурсию.

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

Помимо, собственно, исполнения программ на Sifflet, начиная с этого выпуска появилась возможность экспорта самой программы на другие языки, в частности Scheme (Lisp), Python и Haskell. Помимо самой программы также предоставляется небольшая библиотека для поддержки необходимого функционального минимума на выбранной платформе.

Данная возможность позиционируется авторами как вспомогательная и в познавательных целях.

Почитать про новый язык можно на странице проекта

Учебник.

>>> Анонс выпуска

★★★★★

Проверено: svu ()
Последнее исправление: MuZHiK-2 (всего исправлений: 1)

> Назначение этого языка — помочь студентам познать рекурсию.

С каких пор ради такой ерунды стали придумывать новые языки программирования?

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

Но морфизм есть!

Не относящаяся к делу фигня детектед. (там я просто выразил partition и dropWhile через катаморфизм на списках)

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

>С каких пор ради такой ерунды стали придумывать новые языки программирования?

с тех пор, как 95% программистов решили, что думать не надо, быдлокодить некогда!

AVL2 ★★★★★
() автор топика

Выглядит как УГ.

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

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

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

retweet

с тех пор, как 95% программистов решили, что думать не надо, быдлокодить некогда!

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

Они не первые. Существовало такое советсткое извращение — «ДРАКОН». Даже сейчас какие-то некрофилы его еще ковыряют.

gns ★★★★★
()

Понять рекурсию студентам поможет только сессия

bioreactor ★★★★★
()

Язык, предназначенный школоте помочь оставаться школотой.

В полку говнопрограммистов ожидается пополнение.

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

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

...Представьте себе, как люди определенного субпассионарного склада используют такое учение, которое становится этическим императивом. Они говорят: «Мы на все согласны, только вы нас кормите и на водку давайте. Если мало дадите, то мы на троих скинемся». И им находят место, и они размножаются, потому что им больше делать нечего. Диссертаций-то они не пишут. К концу инерционной фазы этногенеза они образуют уже не скромную маленькую прослойку в общем числе членов этноса, а значительное большинство. И тогда они говорят свое слово: «Будь таким, как мы!», т.е. не стремись ни к чему такому, чего нельзя было бы съесть или выпить. Всякий рост становится явлением одиозным, трудолюбие подвергается осмеянию, интеллектуальные радости вызывают ярость. В искусстве идет снижение стиля, в науке - оригинальные работы вытесняются компиляциями, в общественной жизни узаконивается коррупция, в военном деле - солдаты держат в покорности офицеров и полководцев, угрожая им мятежами. Все продажно, никому нельзя верить, ни на кого нельзя положиться, и для того чтобы властвовать, правитель должен применять тактику разбойничьего атамана: подозревать, выслеживать и убивать своих соратников.

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

http://gumilevica.kulichki.net/EAB/eab10.htm#eab10chapter01

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

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

«Понимать - понимаю, а сказать не могу» (C) один знакомый

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

> На индукцию и я мог плавать. Но я говорю именно про рекурсию :)

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

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

То, что здесь я наблюдаю, не очень похоже на кодогенерацию. Да, она присутствует, но это явно не главная фича.

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

Ассемблер и C++ одно и то же, и там, и там кодогенерация:) Можно пойти и дальше asm и java оно и то же ведь сначала генериться байткод а потом бинарник. И LabVIEW то же ассемблер чистой воды:))

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

>разные олдфаги, у меня препод был, засрал на лекциях ВСЁ(!) [...], что появилось после 80 года

Это уже не олдфаг, это как-то по-другому зовётся :D

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

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

Естественно, что я имею в виду именно конкретные задачи по вышке :)

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

>бинарник имеется в виду преобразование к бинарному коду конкретной архитектуры

То есть бинарник для ARM не является бинарником при наличии ARM? :)

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

> это явно не главная фича.

ну и чем хаскельное поделие принципиально отличается от дракона?

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

О бедном FORTRANе замолвите слово

> Опять же, изначальный FORTRAN, ЕМНИП, никаких циклов не имел.

Старпёра вызывали? ;) Не знаю, что Вы называете «изначальный FORTRAN», а на FORTRAN IV (кстати, почти мой ровесник) программировать случалось. Там был цикл с параметром DO. Wikipedia вот пишет, что в первоначальном выпуске цикл DO тоже был.

Зато рекурсивных вызовов функций и подпрограмм в большинстве реализаций FORTRAN IV не было. Это связано с тем, что и переменные были статическими, и «фрейм» параметров создавался в статической памяти (и едва-ли не во время компиляции), и вызовы подпрограмм осуществлялись инструкцией перехода.

Эх, времечко было :)

anonymous
()

Матлогику прогуливать не надо и тогда не будет проблем с рекурсией.

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

В Unlambda СОВСЕМ нет циклов.
В Хаскелле они реализованы через рекурсию.
В любом чисто функциональном языке их быть не должно, но, может, везде сделано как в хаскелле.

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

> Тем более ставить рекурсивные определения выше императивных (в т.ч. циклических) - тоже глупость.

Рекурсивные - проще.

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

> не поверишь, но найду. покажи мне язык, который не имеет циклов.

А... Ы... SQL?

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

> Тут было замечено, что некоторые реализации не используют рекурсию (в любом случае - это возможно, я проверял :)) а транслируют напрямую в императив.

В том то и дело, что обычно РЕКУРСИЯ разворачивается в НЕРЕКУРСИВНЫЙ ИМПЕРАТИВНЫЙ КОД (но только когда это возможно). А перед этим ваши циклы разворачиваются В РЕКУРСИЮ.

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

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

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

>Читая новости на ЛОРе приходишь к выводу, что под -никсами языков программирования, сред разработки и т.п. гораздо больше, чем пользователького софта. Мдя...

Po tvoemu jazik programmirovania eto ne polzovatelskij soft?

S pomoschu programmirovania rewautsa samie nasuschnie polzovatelskie zada4i. Ved krome polzovatelej-domohozajek est ewe i polzovateli-issledovateli, u4enie, studenti, shkolniki...

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

Тогда возможно, просто сразу не понял.

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

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

Ну так они же альтернативно одаренные

anonymous
()

Языки мышевозного программирования не нужны.

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

> Приводи примеры таких языков.

SK-логика. Там и рекурсии тоже нет, и не надо.

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

А кто-то запрещает? Идея впринципе неплохая, хотя для людей, которые делают что-то серьезное, абсолютно бесполезна.

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

> ну в LLVM используется SSA-представление переменных, и как-то обходятся с phi конструкциями

Так это чисто функциональное представление. SSA эквивалентно CPS.

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

> А также любой компилятор разворачивает хвостовую рекурсию в цикл.

Идиот. Не в цикл, а в slice + longjump. Цикл - это только самые тривиальные случаи.

anonymous
()

ИТТ клоуны понтуются своими потугами в погроммировании. На «визуальном программировании» программировали ещё софт для Буран-а. Ф топпку.

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

>Приводи примеры таких языков.

Prolog

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

>Речь шла о поддержке циклов на уровне синтаксиса языка.

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

Идиёт. Вон из профессии.

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

Качество образования и молодёжи на столько упало

это ты о себе? :) давненько твоего Весомого Мнения не было слышно, я уж надеялся ты ушёл с концами

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

Приводи примеры таких языков.

Haskell, Clean, Erlang. деструктивное присваивание отсутствует (или не является базовым средством языка)

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