LINUX.ORG.RU
 

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


0

1

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

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

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

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

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

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

Учебник.

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

ЗАСТАВЬ КОМПЬЮТЕР ПОЛИВАТЬ ОГОРОД

автоматизация своими руками: электроприборы под контролем компьютера
beware of programmers who carry screwdrivers!
http://www.unicontrollers.com/products/unc01x

[#]  

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

- 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.)

***** ()
[#]  
pevzi

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

**** ()
[#]  
petrosyan

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

*** ()
[#]  
FollowTheRabbit

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

* ()
[#] Ответ на: комментарий от petrosyan 20.08.2010 21:22:27  
bk_

Так было и изначально.

* ()
[#]  

>Sifflet

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

()
[#]  
urxvt

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

*** ()
[#]  
KERNEL_PANIC

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

** ()
[#]  
DRVTiny

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

**** ()
[#]  
NightmareZ

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

()
[#]  
sudo-s

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

* ()
[#] Ответ на: комментарий от the_warlick 20.08.2010 21:57:15  
sudo-s
>>-----Цитата---->>

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

<<-----Цитата----<<

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

* ()
[#] Ответ на: комментарий от sudo-s 21.08.2010 4:39:17  

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

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

***** ()
[#] Ответ на: комментарий от FollowTheRabbit 20.08.2010 21:29:14  

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

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

***** ()
[#] Ответ на: комментарий от DRVTiny 21.08.2010 4:22:59  
KRoN73

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

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

***** ()
[#]  

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

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

**** ()
[#] Ответ на: комментарий от KRoN73 21.08.2010 21:53:13  
shelA

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

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

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

# ()
[#] Ответ на: комментарий от shelA 21.08.2010 22:09:10  
KRoN73

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

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

***** ()
[#] Ответ на: комментарий от KRoN73 21.08.2010 21:53:13  
qsloqs

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

** ()
[#] Ответ на: комментарий от qsloqs 21.08.2010 22:12:11  
KRoN73

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

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

***** ()
[#] Ответ на: комментарий от shelA 21.08.2010 22:09:10  
mironov_ivan

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

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

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

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

***** ()
[#] Ответ на: комментарий от mironov_ivan 21.08.2010 22:13:44  
KRoN73

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

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

***** ()
[#] Ответ на: комментарий от KRoN73 21.08.2010 22:12:04  
shelA

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

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

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

# ()
[#] Ответ на: комментарий от mironov_ivan 21.08.2010 22:13:44  
shelA

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

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

# ()
[#] Ответ на: комментарий от KRoN73 21.08.2010 21:53:13  
Mystra_x64

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

***** ()
[#]  

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

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

***** ()
[#]  
halturin

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

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

***** ()
[#] Ответ на: комментарий от halturin 23.08.2010 8:44:45  

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

***** ()
[#] Ответ на: комментарий от AVL2 23.08.2010 9:22:29  
halturin

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

***** ()
[#] Ответ на: комментарий от halturin 23.08.2010 14:31:24  

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

***** ()
[#] Ответ на: комментарий от halturin 23.08.2010 14:31:24  
KRoN73

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

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

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

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

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

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

***** ()
[#]  

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

***** ()
[#] Ответ на: комментарий от AVL2 23.08.2010 17:12:27  
halturin

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

***** ()
[#] Ответ на: комментарий от KRoN73 23.08.2010 17:51:31  
halturin

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

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

***** ()
[#] Ответ на: комментарий от KRoN73 23.08.2010 17:51:31  
halturin

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

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

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

***** ()
[#]  
thesis

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

*** ()
[#] Ответ на: комментарий от halturin 24.08.2010 2:28:34  
KRoN73

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

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

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

***** ()
[#] Ответ на: комментарий от KRoN73 21.08.2010 22:12:04  
DRVTiny

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

**** ()
[#] Ответ на: комментарий от halturin 23.08.2010 14:31:24  
EvilBlueBeaver

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

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

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

* ()
[#] Ответ на: комментарий от shelA 21.08.2010 22:38:16  
buddhist

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

*** ()
[#] Ответ на: комментарий от KRoN73 23.08.2010 17:51:31  
dave

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

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

***** ()
[#] Ответ на: комментарий от halturin 24.08.2010 2:28:34  
buddhist

Ага, тогда рекурсия — это тоже цикл, да?

*** ()
[#] Ответ на: комментарий от halturin 24.08.2010 2:25:49  

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

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

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

***** ()
[#] Ответ на: комментарий от Karapuz 21.08.2010 22:07:21  
DNA_Seq

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

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

*** ()
[#] Ответ на: комментарий от petrosyan 20.08.2010 21:22:27  
DNA_Seq

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

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

*** ()
[#] Ответ на: комментарий от DNA_Seq 24.08.2010 12:15:17  
dave

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

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

***** ()
[#]  
CARS

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

** ()
[#] Ответ на: комментарий от AVL2 21.08.2010 11:04:21  
DNA_Seq

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

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

*** ()