The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

13.05.2016 19:44  Представлен LISP/c - транслятор Common Lisp в C/C++

Увидел свет транслятор LISP/c. Инструмент ставит целью объединение выразительной силы языка Common Lisp и скорости языков C/C++, что позволяет воспользоваться мощным механизмом Lisp-макросов для генерации текста программ на C. В трансляторе реализована поддержка pthreads, MPI и CUDA. Поддерживается создание классов и шаблонов C++. В данный момент реализация LISP/c протестирована и может работать с использованием CLISP.

Примеры:
1. Hello World



   (header stdio)
   (main
     (@printf (str "Hello, world!"))
     (return 0))

транслируется в


   #include ‹stdio.h›

   int main(int argc,char **argv)
   {
      printf("Hello, world!");
      return 0;
   }

2. Макросы


   (templates make-foo (typ)
     (func (add/sym foo- typ) typ ((x typ) (y typ))
       (return (+ x (* y 2)))))

   (make-foos int long float double)

транслируется в


   int foo_int(int x, int y) {return x + y * 2;}
   long foo_long(long x, long y) {return x + y * 2;}
   float foo_float(float x, float y) {return x + y * 2;}
   double foo_double(double x, double y) {return x + y * 2;}



  1. Главная ссылка к новости (https://github.com/eratosthene...)
Автор новости: freehck
Тип: К сведению
Ключевые слова: lisp
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.2, freehck, 20:02, 13/05/2016 [ответить] [смотреть все]
  • +1 +/
    Ох, не успел я поправить. Ну да ладно, тут скажу. Транслятор - это не совсем правильное слово. Он не транслирует CLISP в C. Это DSL, реализованный на CLISP, который генерирует C-код. Сам автор называет его конвертером. Да в общем вы и сами разберётесь. )
     
     
  • 2.16, Дядя Паша, 23:32, 13/05/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +2 +/
    Транспайлер?
     
  • 2.27, Kodir, 13:59, 15/05/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +1 +/
    Ну, ничего идеологически нового ты комментом не внёс Лисп и есть сам себе DS... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.34, freehck, 10:30, 16/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Не согласен То, что на лиспе написать DSL - это задача на выходные, не делает е... весь текст скрыт [показать]
     
  • 1.3, Аноним, 20:08, 13/05/2016 [ответить] [смотреть все]  
  • +1 +/
    Осталось сделать аналог для rust'a))
     
     
  • 2.4, DM, 20:20, 13/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Может сразу что-то rust-о-подобное со скобочками поверх llvm.
     
  • 1.5, Аноним, 20:48, 13/05/2016 [ответить] [смотреть все]  
  • +4 +/
    в любой непонятной ситуации пиши транслятор LISP на плюсы
     
     
  • 2.28, Kodir, 14:00, 15/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    FORTRAN в Brainfuck ... весь текст скрыт [показать] [показать ветку]
     
  • 1.6, A.Stahl, 21:16, 13/05/2016 [ответить] [смотреть все]  
  • –3 +/
    Ура, наконец-то лисперы смогут таки взять и написать что-то полезное А то сейча... весь текст скрыт [показать]
     
     
  • 2.7, Andrey Mitrofanov, 21:19, 13/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Да Наконец-то, ядро можно переписать ... весь текст скрыт [показать] [показать ветку]
     
  • 2.8, Не Лиспер, 21:23, 13/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    На Лиспе есть супер полезные вещи.
     
     
  • 3.9, A.Stahl, 21:36, 13/05/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Например Не важно даже если они узкоспециальные и по этой причине не на слуху ... весь текст скрыт [показать]
     
     
  • 4.10, Andrey Mitrofanov, 22:06, 13/05/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    GNUS, Org mode, GNU Emacs ... весь текст скрыт [показать]
     
     
  • 5.12, A.Stahl, 22:11, 13/05/2016 [^] [ответить] [смотреть все]  
  • +4 +/
    Нехорошо Вы читерите Это всего лишь плагины к емаксу Т е вместо трёх наимено... весь текст скрыт [показать]
     
     
  • 6.13, Andrey Mitrofanov, 22:30, 13/05/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    А песочек не надо начть плавить, чтоб лисп-машину вытранзисторить Раз- http e... весь текст скрыт [показать]
     
     
  • 7.14, A.Stahl, 22:39, 13/05/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    Я на некоторых форумах граммарнаци подрабатываю и с русским языком на ты , но т... весь текст скрыт [показать]
     
     
  • 8.21, freehck, 09:07, 14/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Вам дали ссылку на melpa, в которой содержится 3000 пакетов для Emacs, а Вы уви... весь текст скрыт [показать]
     
     
  • 9.35, mickvav, 16:58, 16/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Ну и из независимого от emacs - maxima, конечно.
     
     
  • 10.37, freehck, 18:14, 16/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Если в таком ключе, то и MathLab сюда же.
     
  • 8.40, serg, 22:56, 19/05/2016 [^] [ответить] [смотреть все]  
  • +/
    В мире лиспа слишком велико разнообразие Вот есть lush http lush sourceforge... весь текст скрыт [показать]
     
  • 6.25, Аноним84701, 20:11, 14/05/2016 [^] [ответить] [смотреть все]  
  • +/
    И компилируется GCC А теперь угадайте с трёх раз, кто там gcc emacs автором п... весь текст скрыт [показать]
     
  • 4.11, Андрей, 22:06, 13/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Да, интересно. На OCaml есть: unison. А на лиспе? Да и на каком именно лиспе?
     
  • 4.22, Аноним, 13:43, 14/05/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    maxima computer algebra system
     
  • 4.38, Andrey Mitrofanov, 21:47, 16/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Читить, так читить Расширяются на Guile - LilyPond Denemo has good G... весь текст скрыт [показать]
     
  • 3.15, Ordu, 23:18, 13/05/2016 [^] [ответить] [смотреть все]  
  • +12 +/
    Единственная полезная вещь в лиспе -- это лисп. Истинно говорю тебе. Всё остальное, как правило, создаётся на коленке под конкретную задачу, и несмотря на то, что это в некотором смысле эссенция полезности, но крайне редко удаётся эту эссенцию распространить с одной success story на несколько.
    Бывают исключения -- тот же emacs, например. Он полезен не только Столлману. Или weblocks -- если он ещё не загнулся, я не интересовался его судьбой уже несколько лет.

    А вообще, чтобы почувствовать, читай здесь: http://www.winestockwebdesign.com/Essays/Lisp_Curse.html
    Если вкратце и основную суть, то... Лисп -- это прибежище для особо асоциальных кодеров, потому что в лиспе можно гораздо больше сделать не связываясь с социумом и не вербуя соратников. Таким образом можно найти офигеннейшие примеры кода, писанные на лиспе одиночками. Но коллективный проект, который годами тянет, пускай небольшое, но сообщество -- это большая редкость.

    Кстати, до кучи: http://www.posteriorscience.net/?p=206
    lisp -- это для тех, кто пишет систему снизу-вверх, понимая её на всех уровнях. Но это прошлый век. Сегодня невозможно понимать, сегодня программы пишутся методом тыка. То есть, волки-одиночки-лисперы уже не имеют никаких шансов.

    В новости ведь упоминается проект, в котором автор пытается слезть с иглы lisp'а на C, но ему это не вполне удаётся, поэтому он начинает создавать суррогаты лиспа. Я знаю, это сложно: все языки выглядят жалкими подобиями lisp'а, с огромным количеством идиотских ограничений, которые превращают написание программ в вырезание гландов через жопу. Но со временем можно привыкнуть вырезать гланды через жопу. И автор сего лиспового синтаксиса для C тоже поймёт это со временем.

     
     
  • 4.19, Sergey Ya. Korshunoff, 07:20, 14/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Однако gcc переводит C в lisp промежуточные формы Редактор Crisp grief, http... весь текст скрыт [показать]
     
  • 4.20, Sergey Ya. Korshunoff, 07:37, 14/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Не знаю правда, зачем писать С программы на Lisp Есть openlisp реализация https... весь текст скрыт [показать]
     
  • 4.23, pv47, 14:47, 14/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Хотел поставить вам плюс, но после обновления страницы рейтинг комментария почем... весь текст скрыт [показать]
     
     
  • 5.24, Andrey Mitrofanov, 18:58, 14/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Как порогомисту раскрою страшную тайну работы плюсика он плюсуется асинхронно ... весь текст скрыт [показать]
     
     
  • 6.26, Аноним, 00:49, 15/05/2016 [^] [ответить] [смотреть все]  
  • +/
    А ещё оно может учитывать что ты аноним и считать твой голос за 0 1 Или банить ... весь текст скрыт [показать]
     
  • 6.32, За pv47, 23:28, 15/05/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Я был залогинен, сидел из firefox-esr 45, linux Нажал на плюсик, подождал 10 се... весь текст скрыт [показать]
     
     
  • 7.36, mickvav, 17:03, 16/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Поставил вам плюсик и заодно проверил, что сейчас оно работает, значит - баг плавающий. Плюсователь мог молча лечь под нагрузкой - выв плюсовали вечером :)
     
  • 7.39, Andrey Mitrofanov, 11:57, 17/05/2016 [^] [ответить] [смотреть все]  
  • +/
    >> Как порогомисту раскрою страшную тайну работы плюсика: он плюсуется асинхронно. То есть "своевременно или чуть позже". Никакого "после обновления страницы".
    > Я был залогинен, сидел из firefox-

    Первое правило "плюсик"-клуба: не обсуждай http://www.opennet.ru/openforum/vsluhforumID4/323.html#1 плюсики.

    Воторое правило "плюсик"-клуба: будь мужЫком, никогда #$%@... см. п.1.

     
  • 4.29, Kodir, 14:10, 15/05/2016 [^] [ответить] [смотреть все]  
  • –3 +/
    чё снизу-вверх - так пишут новички на бейсике Или ассемблере, но у них выхо... весь текст скрыт [показать]
     
     
  • 5.31, Ordu, 14:51, 15/05/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    > Так асоциальные клоуны или волки?

    Клоуны конечно же. Кругом одни клоуны. Не переживайте так. Примите галоперидольчику, и не нервничайте. Нет никаких волков.

     
  • 5.33, Аноним, 23:38, 15/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Объясняю специально для кодеров Когда вы пишете сверху вниз и выясняете, что ва... весь текст скрыт [показать]
     
  • 4.30, Kodir, 14:16, 15/05/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    > А вообще, чтобы почувствовать, читай здесь: http://www.winestockwebdesign.com/Essays/Lisp_Curse.html

    Почитал белорусский перевод - чуть не уссыкался :)

    "Гэта эсэ яшчэ адна спроба прымірыць ўлада Lisp мова праграмавання з няздольнасцю Lisp супольнасці, каб прайграць іх загадзя А.І. зімовых дасягненняў. Без сумневу, Lisp быў уплывовым крыніцай ідэй нават у яго час адступлення. Той факт, плюс бляск розных архітэктур Lisp Machine, і ў цяперашні час Ліспе рэнесанс пасля больш чым дзесяці гадоў у пустыні, паказваюць, што Lisp партызаны павінны мець некаторыя падставы для іх самаздаволення. Тым не менш, яны не змаглі перавесці магутнасць Lisp ў рух з пераважнай імпульсу."

     
  • 3.18, Аноним, 02:43, 14/05/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    метнул бисер перед свиньёй, которая не слыхала про переполнение буфера
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor