Ярило
Jan 11, 2017
2 minutes read

Итак, я возвращаюсь к Ярило. Как я уже писал - мне не нужны инновации, мне нужен некоторый скриптинг язык, требования к которому я уточню по ходу. Но часть требований уже сейчас понятна.

Минимальные требования

  • Я бы хотел Homoiconic Language. Язык, который хорошо подходит для создания DSL-ей. В этом случае на ум сразу приходит LISP. Современным чуавкам еще придет на ум Julia, но ее корни тоже в LISP, вернее в Scheme. Кому то придет в голову TCL, и так далее. В общем Lisp – очевидный выбор, но ни одна моя попытка научиться легко программировать на Lisp не увенчалась успехом. Вместо Lisp я буду черпать вдохновение в REBOL, который так же похож на Lisp как и не похож. Этих сходств и различий достаточно для того чтобы я (лично) мог программировать на Rebol не испытывая сложностей, одновоременно чувствуя всю “мощь” Lisp.

  • REPL-oriented. Хороший пример REPL-ориентированного языка – Microsoft PowerShell, но и TCL, да и вообще все Homoiconic языки достаточно неполхи для REPL. Что нужно сделать с Rebol, чтобы добавить удобства как REPL инструмента, я посмотрю в процессе.

Поехали

Постараюсь обойтись без прошлых ошибок и достигнуть полезного результата с минимальными усилиями. Соответственно:

Отказываюсь от собственного GC и эффективного представления данных. Буду пользоваться GC предоставленным Nim, а соответственно структуры данных должны быть понимаемыми Nim. Значит отказываемся от тегирования указателей и прочих фишек - наша память должна выглядить для Nim как родная. В этом есть свой плюс - interoperability с Nim, но и минус в потере эффективности из за некоторой несовместимости моделей (у меня динамическая, и, возможно, слабая типизация).


Назад, к записям


comments powered by Disqus