Practical Scheme
Practical Scheme — это коллекция библиотек и расширений для использования Scheme в качестве инструмента для повседневных задач системных инженеров и программистов. Автор, в настоящее время использующий Perl, стремится заменить его Scheme для обработки файлов, генерации отчетов, отслеживания процессов и создания GUI-оболочек. На сайте представлены как готовые приложения, так и библиотеки, некоторые из которых находятся в стадии alpha/beta. Основная цель проекта — сделать жизнь автора счастливее, без каких-либо гарантий для пользователей.
Среди ключевых инструментов — Gauche (версия 0.9.15, 2024), реализация R7RS Scheme с быстрым запуском и встроенными системными интерфейсами; WiLiKi, движок вики (0.6.2, 2014); и escm, фильтр для обработки Scheme-выражений в текстовых файлах. Также доступны библиотеки Gauche-gl (OpenGL, версия 0.6, 2014) и Gauche-gtk2 (GTK2, версия 0.6.1, 2022). Сайт содержит документы по применению Scheme в реальных проектах, включая создание баз данных для трекинга производства и обработку чисел с плавающей запятой.
Комментарии (42)
- Сайт не обновляется, поэтому список инструментов устарел, но в целом он всё ещё полезен как ориентир.
- Список не охватывает все реализации, но охватывает те, которые действительно важны.
- Существует несколько реализаций Scheme, которые могут компилировать в исполняемые файлы, включая Chez Scheme, Chicken, Gambit и Bigloo.
- Некоторые из них могут компилировать в исполняемые файлы, но не все.
- Некоторые из них могут компилировать в исполняемые файлы, но не все.
Show HN: Kent Dybvig's Scheme Machine in 400 Lines of C (Heap-Memory Model)
Виртуальная машина для языка Scheme реализована на C с использованием кучи для хранения пар. Основана на модели из работы Дабвига «Three Implementation Models for Scheme», что делает её компактным учебным примером интерпретатора Lisp-подобных языков.
Лексический анализатор разбивает входную строку на токены, а парсер строит из них списковые структуры через функцию cons. Пары хранятся в статическом массиве text, что упрощает управление памятью. Поддерживаются базовые конструкции: атомы, списки, цитирование через апостров. Вывод структур реализован рекурсивно с учётом точечной нотации.
Комментарии (40)
- Обсуждение производительности и особенностей различных реализаций Scheme, включая Chez Scheme, MIT Scheme и другие.
- Упоминание роли Кента Дибвига как создателя Chez Scheme и его влияния как преподавателя и исследователя.
- Вопросы о технических деталях и возможных ошибках в представленном коде, включая проблемы с указателями и порядком вычислений.
- Идеи о бутстраппинге компиляторов и интерпретаторов, включая использование LLM для генерации ассемблерного кода.
- Общие положительные отзывы о минималистичных и элегантных реализациях Scheme, таких как обсуждаемый код.