LINUX.ORG.RU
 
x4DA

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


0

4

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

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

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

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

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

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

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


[#]  
CARS
>>-----Цитата---->>

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

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

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

** ()
[#]  
buddhist

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

*** ()
[#]  
buddhist
>>-----Цитата---->>

an integrated fully functional Prolog

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

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

*** ()
[#] Ответ на: комментарий от buddhist 02.02.2012 18:41:11  
x4DA

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

** ()
[#]  

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

anonymous ()
[#]  
Jayrome
>>-----Цитата---->>
<<-----Цитата----<<

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

***** ()
[#]  

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

* ()
[#]  
rtvd

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

*** ()
[#] Ответ на: комментарий от Jayrome 03.02.2012 12:43:02  
rtvd
>>-----Цитата---->>

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

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

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

*** ()
[#] Ответ на: комментарий от xSudo 03.02.2012 12:47:33  
buddhist

В исследованиях ФП и ЯП в целом.

*** ()
[#] Ответ на: комментарий от Jayrome 03.02.2012 12:43:02  
>>-----Цитата---->>

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

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

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

* ()
[#] Ответ на: комментарий от xSudo 03.02.2012 12:47:33  
buddhist

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

*** ()
[#]  
>>-----Цитата---->>

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

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

ну и нахрена?

** ()
[#] Ответ на: комментарий от buddhist 02.02.2012 18:41:11  

>> an integrated fully functional Prolog
> А вот это уже интересно.

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

()
[#]  
DELIRIUM

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

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

*** ()
[#] Ответ на: комментарий от Chaser_Andrey 03.02.2012 13:27:35  

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

*** ()
[#] Ответ на: комментарий от Jayrome 03.02.2012 12:43:02  
x4DA

У Вас богатое воображение.

** ()
[#] Ответ на: комментарий от alienclaster 03.02.2012 13:47:30  
x4DA

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

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

** ()
[#] Ответ на: комментарий от xSudo 03.02.2012 12:47:33  
x4DA

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

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

** ()
[#] Ответ на: комментарий от umren 03.02.2012 14:30:04  
x4DA

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

** ()
[#]  

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

anonymous ()
[#]  

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

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

anonymous ()
[#] Ответ на: комментарий от mix_mix 03.02.2012 13:14:33  

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

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

**** ()
[#] Ответ на: комментарий от anonymous 03.02.2012 14:44:05  
x4DA

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

** ()
[#]  
encyrtid

Прикольная хрень.

** ()
[#] Ответ на: комментарий от x4DA 03.02.2012 15:13:54  

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

anonymous ()
[#] Ответ на: комментарий от alienclaster 03.02.2012 13:47:30  

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

anonymous ()
[#]  

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

anonymous ()
[#] Ответ на: комментарий от anonymous 03.02.2012 15:38:58  

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

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

anonymous ()
[#] Ответ на: комментарий от x4DA 03.02.2012 15:15:35  
>>-----Цитата---->>

Где "там" ?

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

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

anonymous ()
[#] Ответ на: комментарий от x4DA 03.02.2012 14:23:28  

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

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

* ()
[#] Ответ на: комментарий от xSudo 03.02.2012 16:13:03  
>>-----Цитата---->>

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

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

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

anonymous ()
[#] Ответ на: комментарий от xSudo 03.02.2012 16:13:03  
>>-----Цитата---->>

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

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

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

anonymous ()
[#] Ответ на: комментарий от anonymous 03.02.2012 15:38:58  
x4DA

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

>>-----Цитата---->>

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

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

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

** ()
[#] Ответ на: комментарий от xSudo 03.02.2012 16:13:03  
x4DA

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

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

** ()
[#] Ответ на: комментарий от anonymous 03.02.2012 16:06:16  
x4DA

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

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

** ()
[#] Ответ на: комментарий от x4DA 03.02.2012 17:02:05  
>>-----Цитата---->>

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

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

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

anonymous ()
[#] Ответ на: комментарий от x4DA 03.02.2012 16:50:47  

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

anonymous ()
[#] Ответ на: комментарий от anonymous 03.02.2012 15:43:01  

не WAM, а ВАМ :-)

anonymous ()
[#]  
Ja-Ja-Hey-Ho

В firefox'е «Shen JS REPL» не работает.

* ()
[#] Ответ на: комментарий от Jayrome 03.02.2012 12:43:02  

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

* ()
[#]  
Reaper

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

** ()
[#]  
lucentcode

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

** ()
[#]  

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

anonymous ()