LINUX.ORG.RU

Вышел порт языка Shen на Javascript

 , ,


1

4

Выпущен порт языка программирования Shen на Javascript.

Протестировать работу Shen на JS можно тут.

Для освежения памяти:

Shen - это функциональный язык программирования, являющийся продолжением языка Qi II. Имеет опциональную статическую систему типов, основанную на секвенциальном исчислении, и общее направление на логическое программирование.

Важной целью языка является переносимость. Ядро реализовано с использованием всего 45 функций Kernel Lisp (KL), поэтому язык достаточно быстро может быть перенесён на любую платформу.

Предыдущие посты на ЛОРе по теме:

>>> Подробности

★★★★★

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

Ядро реализовано с использованием всего 45 функций Kernel Lisp

Где можно посмотреть их список?

CARS ★★★★ ()

Язык похож на смесь Lisp, ML и Joy :)

buddhist ★★★★★ ()

an integrated fully functional Prolog

А вот это уже интересно.

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

Причем определения типов как раз в него компилируются.

x4DA ★★★★★ ()

Что за курица, нашпигованная морковкой, заместо маскота?

anonymous ()

Интересно где вообще это можно применить?

xSudo ★★★ ()

Здорово. В добрый путь, товарищ Qi II!

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

На логотипе человек пежит страуса на столе?!

Причем лаконично, надежно и кроссплатформенно.

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

На логотипе человек пежит страуса на столе?!

Хм... я подумал, это женщина.

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

Ну и там на сайте написаны предполагаемые области применения. Особенно улыбнул «Sanskrit».

buddhist ★★★★★ ()

Вышел порт языка Shen на Javascript

ну и нахрена?

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

an integrated fully functional Prolog

А вот это уже интересно.

Чем? Нужен пролог в лиспе - возьми да напиши

alienclaster ★★ ()

Вышел порт языка Shen на Javascript

прочитал как «Вышел порт языка Chlen на Javascript»

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

этот коммент просто был обязан появиться на 1 страницы данной новости

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

Это не тот случай, см. FPQi и далее.

Вкратце, это не просто библиотека, а неотъемлемая часть языка. В Abstract Unification Machine компилируются секвенты, задающие типы.

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

Для разработки надежных© приложений. Некоторые идеи:

Shen has a great contribution to make in safety critical areas such as

  • space exploration,
  • nuclear plant maintenance
  • medicine
  • high integrity operating systems

due to its ability to support type safe computations at a level beyond that of SML and Haskell. See this draft study in Lambda Associates for a discussion of how Shen could help in a Mars Lander application.

The type security and small footprint of Kl makes Shen suited to embedded systems where reliability, compactness and high performance are at a premium. See study #10 on a comparative shoot-out between O'Caml, Lisp and Qi for a performance outline.

As a universal metalanguage for bringing the benefits of static type checking to dynamically typed languages. See study #2 in Lambda Associates for how to build a type checker for Lisp.

For designing type secure reasoning systems including expert and multiagent systems. See this chapter for an example for Qi's use in expert systems and multi-agent reasoning.

Web Development; a Shen running on top of Javascript could drive client-side applications that could run on many computers.

http://www.lambdassociates.org/Shen/newappeal.htm

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

Код shen будет работать на *любом* бекэнде, не только JS. То, что Вы привели - просто какая-то JS-ная либа для ФП.

x4DA ★★★★★ ()

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

anonymous ()

А можно вкратце: зачем там set?

Почему не устроил plain-namespace как в схеме.

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

Хм... я подумал, это женщина.

Ты вообще женщину видел когда-нибудь?

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

Это серьёзные ремни безопасности. Таким образом Lisp можно приблизить к современным безопасным ФЯП, таким как хаскель.

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

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

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

Полноценный WAM компилятор с оптимизациями? Пеши сам!

anonymous ()

ненужность на ненужности ненужностью погоняет.

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

Там вообще-то (tc +/-). И что-то сомневаюсь, что вывод типов как в хаскеле (HM на стероидах).

Patter-matching и backtraking из пролога. Минимальное ядро, не то что этот ваш CL, портабельность. Что в этом плохого?

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

Где «там» ?

А вы сами как думаете? Хинт: ну явно не в Qi.

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

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

Я так понимаю, работает это всё дело с прослойкой на яве?

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

Я так понимаю, работает это всё дело с прослойкой на _яве_?

М-да... Сходите по ссылкам, что ли.

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

профессионал со знанием ассемблера напишет программу для микроконтроллера гораздо надёжнее

Хрен там. Видел я этих профессиналов, из дебагера месяцами не вылезают. Програмка то - гавно, порядка 27 тыс. строк на ассемблере.

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

Описание задачи при помощи типов - вполне ОК.

Думать о типах должна машина

Единственный тип машины - машинное слово.

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

Сравнение с ассемблером некорректно имхо. Ассемблер тут явно в проигрыше, кроме того никто не будет писать на ассемблере там, где есть компилятор для C.

Но даже в этом случае использование нативной реализации Shen (которую несложно будет сделать) будет безопасней кода на C.

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

Если под выводом типов вы понимаете type inference (автоматическое приписывание типа) там там его вообще нет.

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

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

Если под выводом типов вы понимаете type inference

А где там было про вывод типа? Кроме скобок, а там как раз и имелось ввиду, что сравнение с хаскелем не очень уместно. Что сокращает «tc» - несложно догадаться).

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

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

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

Зря я посмотрел логотип, теперь на ха-ха пробивает.

imul ★★★★★ ()

Смысл порта на js непонятен.

Reaper ★★ ()

Интересно. Язык похож на Scheme.

lucentcode ★★★★★ ()

ну сколько же можно!!!!

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