LINUX.ORG.RU

Вышел Qi II

 , ,


0

0

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

Нововведения Qi II:

  • Новая реализация - Qi II был переписан с нуля
  • Новая лицензия - GPL заменена двойной лицензией, позволяющей как Open Source, так и закрытое коммерческое использование
  • Типобезопасное ленивое вычисление по требованию
  • Новый компилятор с 4 уровнями оптимизации
  • Улучшена интеграция с CL
  • Работает под LispWorks
  • Некоторые конструкции в Qi II сделаны полиадическими
  • Улучшена связь с Prolog
  • Замыкания по правилам (rule closures)
  • Улучшена обработка зависимых типов

Обсуждение есть на LtU: http://lambda-the-ultimate.org/node/3110

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

★★★★★

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

Очередной недоязычок?

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

> эх, знать бы, что такое секвенциальное исчисление и полиадические конструкции

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

yk4ever
()

Коммерческий язык - это верх лицензиефетишизма...

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

> Совмещать лисп и пролог - имхо извращение.

А почему? Вполне логично, ИМХО. Тем более предикатный перебор с возвратами можно реализовать поврех лиспу в виде обыкновенных функций.

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

>эх, знать бы, что такое секвенциальное исчисление и полиадические конструкции

Вот они - быдлоимперативщики :) СиЖабу осилили, а русский язык - нет... Марш в школу. http://slovari.yandex.ru/dict/bse/article/00069/85200.htm

Полиадический - суть многоместный.

Неучи.

anonymous
()

Это очередной 100%-pure academic language, не предназначенный для практических задач. Как, собственно, и сами LISP и Prolog.

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

Оно умеет компилироваться в бинарный код? Оптимизирующая надстройка над лиспом. Юудет лисп компиляться - будет и Qi тоже... Пролог - 89 строк кода, оптимизатор, ооо, аж 12 кило. Генератора машкода не узрел :) /оно и понятно/

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

> Оно умеет компилироваться в бинарный код?

Это надстройка на Common Lisp.

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

>Это очередной 100%-pure academic language Не гони волну, люди волноваться начнут.

Использовать этот шаттл еще надо уметь. Лет через 30 его идеи как обычно проникнут в среду индусов от сидонетжабы. И будут они счастливы, и будут ругать очередной pure-academic язык и не понимать своего счастья :)

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

русский, он же славянский, он же - великий и могучий матЪезыг на шершавом лингвистическим наречии является "надстройкой" (метаязыком) над русским языком соответственно. Вас нерусское слово "топор" коробит так же, как и "секвенция", надеюсь? :)

anonymous
()

странно, надстройка, скажем, rdnzl - просто библотека, а qi - по сути та же либа, но уже именуется яп? ужос :)

anonymous
()

Эхма, так и не понял прелестей Lisp... Похоже, плохо смотрел или не было подходящих задач.

Вот скажите темному, для какого рода задач лучше всего подходит Lisp? ИИ я не занимаюсь

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

формочки рисовать - не подходит однозначно :) /скажем так - преимуществ перед моносижабой не будет особо заметно/

Лопатитть данные в Р/О СУБД - можно сложная логика - можно решения можно описать очень компактно. Короче, чем громоздить аналогичное всякими там Bridge/Visitor/Factory паттернами.

работа с битами (картинок, архивов) - ну, не очень. Вообще low-level не очень. Очень, как правило, high-level - для чего он, собсно, и задумывался :)

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

Единственное, для чего предназначен Лисп - написание DSL (Domain-Specific Languages).

Это даёт основания адептам Лисп утверждать, что Лисп опосредованно годится для абсолютно любого рода задач - путём реализации соответствующего DSL на Лисп, и дальнейшего писания уже на DSL. Этот подход имеет свои плюсы и минусы. Среди плюсов - то, что получится язык, конкретно заточенный под задачу. Среди минусов - то, что необходимо реализовать и отладить собственно язык плюс опциональную обвязку из дебаггера, профайлера, системы юнит-тестов, системы кододокументирования и прочих компонентов development environment.

Таким образом, если верить лисперам, то Лисп оправдан для тех задач, где будет выгоднее вложиться в разработку DSL, нежели решать их при помощи языков общего назначения. Это класс очень крупных, масштабных задач.

Такой подход сами лисперы считают "элитным", и относят себя к элите IT, проявляя при этом порядочный снобизм и относясь ко всем остальным весьма пренебрежительно. (Я не сомневаюсь, что Вам удастся это лично пронаблюдать в данном треде, когда сюда подтянутся представители так называемой элиты.)

Но не пытайтесь реализовывать алгоритмы на самом Лисп, он не предназначен для этого. Недавний прецедент с примитивным вычислительным бенчмаркингом LISP vs. C наглядно это продемонстрировал.

Вы можете многое узнать о Лисп из недавнего треда "Создатель Python разочарован в Scala" (http://www.linux.org.ru/view-message.jsp?msgid=3271707), начиная где-то с седьмой страницы. Там же Вы найдёте и ссылку на топики с бенчмаркингом.

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

> Единственное, для чего предназначен Лисп - бла-бла... Твои усилия по опусканию лиспа достойны лучшего применения.

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

"суть" - множественная форма слова "есть". неуч.

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

>>>Это очередной 100%-pure academic language Не гони волну, люди волноваться начнут.

>Использовать этот шаттл еще надо уметь. Лет через 30 его идеи как >обычно проникнут в среду индусов от сидонетжабы. И будут они >счастливы, и будут ругать очередной pure-academic язык и не понимать >своего счастья :)

через 30 лет кодировать будут только роботы :)

anonymous
()

>статическую систему типов, основанную на секвенциальном исчислении

Это прорыв. Это язык 7 поколения, (всякие пистоны и явки - 4). Эх кусаю локти теперь, говорили мне умные люди, "Ботай лисп", у таких людей можно было поучиться - элита отечественной информатики, а все казалось не программирование это, а математика. Вот С - это другое дело, деньги были нужны, гавном ведь занимался - драйвера клепал под виндовз за питьсот баксов.

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

>Единственное, для чего предназначен Лисп - написание DSL (Domain-Specific Languages).

А что дядя скажет, про "адаптивное обучение роботов", или управление беспилотными вертолетами в любых погодных условиях, или про обработку сигналов с радиолокаторов в реальном времени?

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

>А что дядя скажет, про "адаптивное обучение роботов", или управление беспилотными вертолетами в любых погодных условиях, или про обработку сигналов с радиолокаторов в реальном времени?

Дядя скажет что лисп сосет и подтвердит это графиками с красной и зеленой линией.

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

Похоже сегодня флейма не будет. Наверное не все готовы обсуждать секвенциальную теорию Кантора-Чёрча-Генцена.

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

> Это язык 7 поколения, (всякие пистоны и явки - 4).

А где про это можно почитать? (желательно с примерами к какому уровню относятся разные языки и почему)

anonymous
()

Беспонтовый язык программирования. На самом деле, очень плохой язык программирования. Я думал намного лучше будет, намного лучше будет все и очень плохой язык программирования, просто очень плохой язык программирования. Я думал намного лучше все будет. Сколько раз программировал! Было намного лучше. Ну на этот раз как-то не удалось. Во-первых народу мало, да и язык программирования не очень.

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

> что дядя скажет ... про обработку сигналов с радиолокаторов в реальном времени?

Расскажи мне об этом. Я хочу посмеяться.

tailgunner ★★★★★
()
Ответ на: комментарий от Sun-ch

> или про обработку сигналов с радиолокаторов в реальном времени?

Обрабатывается ВизуалБейсик, видел собственными глазами. И все это крутиться под win98, ибо система реального времени. Да, все с гуйком кривоватеньким. Лисп? За те копейки, которые платят в госконторах, напыщенная элита не пойдет. А инженеру Вася Пупкину велено разработать "программный комплекс", он и разрабатывает, предварительно купив в магазине "бейсик для тупых".

Добро пожаловать в реальный мир, дядя.

anonymous_num_0
()
Ответ на: комментарий от Sun-ch

>управление беспилотными вертолетами в любых погодных условиях
Круто, ветровлагозащищенный язык типа?

ratatosk
()
Ответ на: комментарий от Sun-ch

> Это прорыв. Это язык 7 поколения, (всякие пистоны и явки - 4).

дядь, ну откуда седьмой-то? 0GL были коды и ассемблеры, 1GL всякий лапшекод на фортране и си, 2GL -- структурный, 3GL -- ООП, 4GL -- те самые "DSL под задачу" , 5GL -- constraint programming и епонская ИИ программа. Откуда 7GL -то? И что случилось с 6GL?

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

>Похоже сегодня флейма не будет.

Он при ходит только по ночам. Надо подождать.

> Наверное не все готовы обсуждать секвенциальную теорию Кантора-Чёрча-Генцена.


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

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

> Обрабатывается ВизуалБейсик, видел собственными глазами. И все это крутиться под win98, ибо система реального времени. Да, все с гуйком кривоватеньким. Лисп?

не беда, видел ECL встраиваемый в Visual Basic-приложение. Вполне хтоничненько.

anonymous
()

> секвенциальном исчислении

> Типобезопасное ленивое вычисление по требованию

Буквы вроде русские, но язык явно другой.

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

> Лет через 30 его идеи как обычно проникнут в среду индусов от сидонетжабы. И будут они счастливы, и будут ругать очередной pure-academic язык и не понимать своего счастья :)

Надеюсь лет через 30 мелочи вроде нового pure academic языка меня волновать не будут.

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

>> секвенциальном исчислении >> Типобезопасное ленивое вычисление по требованию

>Буквы вроде русские, но язык явно другой.

первое - устоявшийся в русскоязычной литературе термин, погугли и убедись; как корректней перевести второе я не знаю, может поможешь?

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

"Замыкания по правилам (rule closures)" (с)

А что такое замыкания? Какие из них по правилам, а какие не по правилам?

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

И еще один вопрос, какую рекурсию (как завещал нам сам Профессор) поддерживает сей труЪ полиадический язык программирования Qi II - хвостовую или подхвостовую?

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

>А что такое замыкания? Какие из них по правилам, а какие не по правилам? 

Rule Closures

Unlike Qi I, Qi II allows you to embed sequent rules
within functions, evaluating them to closures. These
rule closures are type checked and are permeable to
having their variables lexically bound from outside
the scope of the rule itself. These devices enable
the student of computational logic to effortlessly
code complex logical systems of all descriptions. Thus
the rule

let PTerm/X (replace-by X Term P)
PTerm/X, (all X P) >> Q;
____________________
(all X P) >> Q;

allows universally quantified assumptions to be 
instantiated to new premises. This rule can be 
embedded into a Qi II function called all-left which 
does precisely this job. The rule is turned into a 
closure by the rule function which is then applied to 
the problem (list of sequents).

(define all-left
{term --> [sequent] --> [sequent]}
Term S -> ((rule let PTerm/X (replace-by X Term P)
PTerm/X, (all X P) >> Q;
____________________
(all X P) >> Q;) S))

FPQi devotes a hundred pages to the exploration of this 
powerful construction.

переводи сам, чай не маленький

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

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

Ваша гордость своей безграмотностью и незнанием просто противна...

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

> "Замыкания по правилам (rule closures)" (с)

может быть, "замыкания правил"? Ну как там канторовы множества с замыканиями, супремумами и инфинумами. В математическом смысле: "какой ты компактный, то есть, замкнутый и ограниченный"(c) :) -- в смысле, "транзитивное замыкание операции, это .. итд итп".

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

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

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

Ну это простые смертные считают, что "замыкания правил". А Вы-таки новость прочитайте - цитаточка-то оттуда.

Функциональные язычки программирования - это дело доброе, они ЧСВ "до больше 9000" (с) повышают, даже если их адепты пишут "замыкания по правилам" вместо "замыкания правил". "Рунглиш" (the Runglish language) рулит!

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