Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт май 30, 2017 2:07 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 20 сообщений ]  На страницу 1 2 След.

Стали бы вы программировать на LISP в Колибри?
Да 47%  47%  [ 17 ]
Нет 53%  53%  [ 19 ]
Всего голосов: 36
Автор Сообщение
СообщениеДобавлено: Вт янв 18, 2011 5:55 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Собственно узнаю, потому что хочу узнать, нужен ли порт минимальной, но расширяемой реализации лиспа
Стоит ли игра свеч?
Интересуюсь, потому что сейчас учу лисп - а там всегда практика есть на реализации лиспа на нем самом :)

Собственно заготовка уже есть (на С), но если будет много желающих - не проблема быстро переписать на ассемблер.


Вернуться к началу
СообщениеДобавлено: Вт янв 18, 2011 6:03 pm 
Рекомендую добавить ответ типа "пока не знаю" или "затрудняюсь ответить". Я например лично пока не уверен, но и отказываться глупо.


Вернуться к началу
   
СообщениеДобавлено: Вт янв 18, 2011 6:12 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1204
I myself would not use it, but dont let that stop you.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
СообщениеДобавлено: Вт янв 18, 2011 6:47 pm 
Не в сети

Зарегистрирован: Чт ноя 25, 2010 8:26 pm
Сообщения: 41
У меня есть желание поэксперементировать с реализацией scheme-диалекта под колибри, может быть найду время.
Не думаю, что портирование хорошей реализации lisp (scheme), например gambit имеет смысл. Скорее всего потенциальных лисп-программистов под Колибри просто нет.
С другой стороны, миниатюрный интерпретатор с обертками для графических функций (gui), имхо мог бы быть полезен.

XVilka писал(а):
Интересуюсь, потому что сейчас учу лисп - а там всегда практика есть на реализации лиспа на нем самом Собственно заготовка уже есть (на С), но если будет много желающих - не проблема быстро переписать на ассемблер.


Прикрепил к сообщению одну "заготовку" -- примитивный лисп-интерпретатор, найденный на просторах интернета. Построен по принципу передачи окружения. Не имеет сборки мусора. (Про оптимизацию хвостовых вызовов не помню, наверное тоже нет.) Беда в том, что сборщик мусора в него добавить практически невозможно, т.к интерпретатор использует стек (рекурсия в сишных eval-apply). И скорректировать ссылки на лисп-объекты в стеке уже не так просто, как в окружении (top_env). Подразумевается сборка мусора простейшим методом остановки с копированием.

P.S Не голосовал.


Вложения:
Комментарий к файлу: lisp interpreter ;)
lisp.c [13.25 КБ]
104 скачивания
Вернуться к началу
СообщениеДобавлено: Ср янв 19, 2011 11:36 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Короче решил делать - но только не интерпретатор, а компилятор - больше соответсвует духу колибри. По поводу оберток для графических функций - посоветуйте к каким конкретно надо.

решил отталкиваться от newlisp и dream

Ключевым доводом в сторону нужности послужило то, что много экспертных систем написано на лиспе или подобных языках - а для математических расчетов они бы пригодились - например ту же какую-нибудь легкую CAS можно портировать. Например yacas http://yacas.sourceforge.net/homepage.html


Вернуться к началу
СообщениеДобавлено: Ср янв 19, 2011 1:35 pm 
Не в сети

Зарегистрирован: Чт ноя 25, 2010 8:26 pm
Сообщения: 41
Компилятор от интерпретатора в случае Лисп мало чем отличается по своей сути. Причина в том, что язык поддерживает лексическое замыкание и и окружение представляет собой уже не дерево, а граф. Т.е как си его не скомпилируешь. Плюс сборка мусора. В результате в обоих случаях мы получаем одинаковую библиотеку времени выполнения. И интерпретатор и компилятор могут проводить предобработку исходного текста ради оптимизации. Но это все так, к слову.

Просто я скептически отношусь к идее реализации лисп ради переноса в Колибри каких-нибудь лисп-проектов. В этом случае придется реализовать поддержку стандарта common lisp или scheme; короче говоря, куча мелочей, рутина, и кому это вообще нужно?

Вот пример пример другого подхода. Это интерпретатор лисп под Palm OS. Благодаря встроенным функциям работы с файлами ("Virtual File System support"), gui и др. общаться с ситемой очень просто. (Про файлы. Можно сказать, что в Palm данные хранятся в базе данных и ассоцированны с конкретными приложениями, но в lispme можно работать, например, с вашими заметками или todo просто как с текстовыми файлами). Только программировать непосредственно под палмом неудобно, но вот Колибри этого недостатка лишена. Думаю, что создавать gui-приложения на лиспе могло бы быть значительно проще и быстрее, что немаловажно для just-for-fun проекта.

В этом случае я бы попрограммировал на лисп в Колибри)


Вернуться к началу
СообщениеДобавлено: Ср янв 19, 2011 1:58 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
ну, я портирую как раз реализацию R5RS стандарта. Следующим этапом можно будет сделать расширение Scheme в LISP

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


Вернуться к началу
СообщениеДобавлено: Ср янв 19, 2011 3:21 pm 
Не в сети

Зарегистрирован: Чт ноя 25, 2010 8:26 pm
Сообщения: 41
XVilka писал(а):
ну, я портирую как раз реализацию R5RS стандарта.

Ага, просто мне показалось по первому соообщению, что у вас есть интерес к самостоятельной реализации:
XVilka писал(а):
Интересуюсь, потому что сейчас учу лисп - а там всегда практика есть на реализации лиспа на нем самом

Ну ладно, а как вы сами планируете использовать этот компилятор? Для портирования системы комп. алгебры, или просто в надежде, что кому-нибудь он пригодится?


Вернуться к началу
СообщениеДобавлено: Ср янв 19, 2011 4:10 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Да, у меня интерес к самостоятельной реализации - Я делаю ее по книгам "Scheme from Scratch - Bootstraping" и "Lisp in small pieces"

Но вот смотреть в чужой код приходиться - чтобы разобраться что и как.

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


Вернуться к началу
СообщениеДобавлено: Ср янв 19, 2011 6:48 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Сейчас занимаюсь I/O для компилятора - возник вопрос, каким образом лучше ( и проще ) организовать взаимодействие с компилятором? То бишь как его лучше запускать/вызывать?


Вернуться к началу
СообщениеДобавлено: Ср янв 19, 2011 7:09 pm 
Не в сети

Зарегистрирован: Чт ноя 25, 2010 8:26 pm
Сообщения: 41
Я думаю для начала достаточно запуска с параметрами, а собщения об ошибках пусть выводятся на доску отладки.
Кстати, ведь ошибки времени компиляции для scheme - это практически только лексические ошибки + непарные скобки ;). Остальные ошибки обнаруживаются во время запуска, и тогда вопрос, как жить без REPL?

С REPL имхо не просто, если будет поддержка GUI-функций. Ведь процесс может иметь только одно окно (если не ошибаюсь).
С другой стороны, если будет поддержка исключений, то можно обойтись без него.


Вернуться к началу
СообщениеДобавлено: Ср янв 19, 2011 9:43 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
интерпретатор тоже будет - просто мне надо же сначала его самого им самим под колибри собрать.

То есть таким способом - я его собираю для линукса с помощью guile
Потом скомпилированным начинаю пытаться собрать его же самого
Если все нормально - собрать его же самого только уже под колибри.


Вернуться к началу
СообщениеДобавлено: Пн фев 07, 2011 5:39 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Почти допилил. Только застрял на способе загрузки библиотек и функций в них.


Вернуться к началу
СообщениеДобавлено: Вт мар 01, 2011 10:11 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Много экпериментировал, пробовал портировать newLISP, много раз пробовал реализацию на racket, и понял что все слишком громоздко, не вписывается в концепцию Колибри, и опять вернулся к "dream" http://hg.droid-developers.org/kolibri-scheme/overview Пока не успел API доработать, времени мало, но раз уж заставил себя на репу залить - буду потихоньку допиливать.


Вернуться к началу
СообщениеДобавлено: Вт окт 04, 2011 11:55 pm 
Не в сети

Зарегистрирован: Пн мар 27, 2006 6:33 am
Сообщения: 523
Обратите внимание на язык Factor из серии цепочечных языков и вобрал в себя разные возможности.
http://factorcode.org/ спроектирован и с использованием и Лисп подхода,
проект довольно интересный и возможно лучший кандидат для включения в колибри?
языка с Лисп подходом.
[url]http://ru.wikipedia.org/wiki/Factor_(язык_программирования)[/url]
Краткая характеристика из википедии.

P.S. Лисп не практиковал, хотя некоторое понимание его принципов и устройства есть.
Сам сторонник Форт (Forth) языка и подключения кода, например OpenFirmware к ядру.
Factor язык, также имеет и элементы Форт языка.
Форт системы на Fasm ( revaForth, retroForth) тоже интересные разработки с большими примерами.
По возможности, есть желание поучавствовать в развитии колибри:)


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 20 сообщений ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB