LINUX.ORG.RU

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

 , , ,


0

1

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

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

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

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

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

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

Учебник.

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

★★★★★

Проверено: svu ()

Интересный факт.

- Although the exporters apparently generate correct code, there are at present too many parentheses — a few extras in Python, many extras in Haskell. (No extra parentheses in Scheme, of course.)

AVL2 ★★★★★ ()

Хм, любопытная штука.

pevzi ★★★★★ ()

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

petrosyan ★★★★★ ()

>Назначение этого языка помочь студентам познать рекурсию
ога, даешь по новому языку для изучения каждой детали программирования! Это наш метод! Юниксвей!

FollowTheRabbit ()

Sifflet

Как вы баржу назовете, так она и поплывет (с)

the_warlick ()

Увидел бы это Спольски...

urxvt ★★★★★ ()

Вопрос: кому это надо и кто его будет использовать?

KERNEL_PANIC ★★★ ()

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

DRVTiny ★★★★★ ()

Даёшь 100500 новых говноязыков! Каждому программеру по говноязыку! Всем сразу будет счастье.

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

Как вы баржу назовете, так она и поплывет (с)

Особенно применительно к брейнфаку...

sudo-s ()
Ответ на: комментарий от sudo-s

>мммм, новый велосипед?

можт назовешь старые велосипеды?

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

>ога, даешь по новому языку для изучения каждой детали программирования! Это наш метод! Юниксвей!

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

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

>Ой, а давайте дружно закопаем все эти новые языки програмирования вместе с их создателями, устроим на кладбище субботник наконец.

Это ты про Python, Ruby и т.п.?

KRoN73 ★★★★★ ()

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


Чтобы понять рекурсию нужно понять рекурсию©

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

>> Ой, а давайте дружно закопаем все эти новые языки програмирования вместе с их создателями, устроим на кладбище субботник наконец.

Это ты про Python, Ruby и т.п.?

Не это про PHP )))

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

>Не это про PHP )))

Так было же множественное число в предложении и «и т.п.» в вопросе :)

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

>Слыхал? Они рекурсию понять собрались.

Дык. Как только поймут рекурсию - сразу же поймут рекурсию.

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

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

Это ты про Python, Ruby и т.п.?

Не это про PHP )))

Ты в следующий раз уточняй. А то олдфаги вон уже приготовили лопаты для закапывания C++ с Java =).

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

>А то олдфаги вон уже приготовили лопаты для закапывания C++ с Java =).

Ну, Java - понятно. Новичок зелёный. А вот про Си++ - неужто тут есть олдфаги, для которых он «новый»? Признавайтесь!

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

>> Не это про PHP )))

Так было же множественное число в предложении и «и т.п.» в вопросе :)

Ну тада PHP и ЯВА )))

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

> А то олдфаги вон уже приготовили лопаты для закапывания C++ с Java =).

Интересно где ты видел олдфагов закапывающих Це++, оно наше фсё)))

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

Асм же. Надо напрямую писать, как все Ъ.

Deleted ()

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

Фактически это то, к чему стремились, создавая uml.

AVL2 ★★★★★ ()

Sifflet 2.0 - помочь студентам познать циклы с пост- и предусловием. ))))))

нация тупеет?

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

безусловно, нация, в лице тех индивидов, которые ищут (и находят!) циклы в функциональных ЯП, тупеет.

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

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

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

man функциональные ЯП. ты прямо в новости про такой язык сидишь...

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

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

Классический Бейсик :)

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

Ассемблеры многих процессоров циклов не имеют.

Focal, кажется, тоже циклов не имел.

Язык программирования ПМК класса Б3-21 не имел циклов, они только на Б3-34 появились.

KRoN73 ★★★★★ ()

Модераторы подтверждать новость вообще собираются?

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

не наличие оператора «for» определяет наличие циклов.

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

>Ассемблеры многих процессоров циклов не имеют.

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

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

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

http://h21007.www2.hp.com/portal/download/files/unprot/fortran/docs/lrm/lrm01...

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

halturin ★★★★★ ()

Вау! Новый язык программирования!

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

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

Джамп - это переход. Но не цикл.

С помощью условий и переходов можно организовать циклы, но от этого условия и переходы не превращаются в новую сущность :)

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

Имелось в виду: оставить Fortran, BASIC, C/C++, Ada, Prolog и Perl. Остальное закопать нахрен. И создателей заодно. Создателей языка Java предварительно поварить в кипящей воде с солью и приправами.

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

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

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

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

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

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

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

> Focal, кажется, тоже циклов не имел.

А конструкция do? Кажется, так она называлась тогда...

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

>не наличие оператора «for» определяет наличие циклов.

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

В функциональных языках нет циклов.

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

>Чтобы понять рекурсию нужно понять рекурсию©

Условие выхода должно быть иначе получится бесконечный цикл и переполнение стека

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

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

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

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

Условие выхода должно быть иначе получится бесконечный цикл и переполнение стека

Не боись! Переполнения стека не будет. Это всего лишь вариант хвостовой рекурсии :)

dave ★★★★★ ()

Ждём веб-фреймворка.

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

>И слом неокрепшего императивного мозжечка...

Дао, которое может быть выражено словами не есть постоянное Дао. Имя, которое может быть названо, не есть постоянное имя. … В этом закон небесного Дао.

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