В функциональной парадигме функция является основной «структурой управления». Например, оператор +
также рассматривается как функция, и вы можете передавать их, как и любые другие «объекты». Мне было интересно, что если бы мне пришлось реализовать функциональный язык игрушек, я бы выполнил простые функции как истинные функции (например, перевести +
в вызываемую процедуру) или перевести их в обычные инструкции, которые будут помещены «inline» в переведенный код. Но тогда, со второй стратегией, я смогу передать их и применить их частично как в haskell? Каковы ваши мысли о реализации/переводе функций как центральной идеи на функциональном языке?Как реализовать функциональный язык программирования?
7
A
ответ
0
Я могу порекомендовать книгу PJL. Я написал компилятор с его помощью (в 1989-1990 годах, в Prolog), и книга - очень хорошее введение в эту тему.
Это может быть датировано (написано в 1987 году, 30 лет назад), но оно все еще очень хорошо охватывает основы. Это, однако, полностью сосредоточено на ленивых языках, таких как Haskell. В то время Haskell не существовало, и книга использует LML или Miranda, язык предшественника, но языки очень близки.
Смежные вопросы
- 1. Как реализовать функциональный язык
- 2. Javascript как функциональный язык
- 3. Фактический, открытый и хороший функциональный язык программирования
- 4. Какой самый минимальный функциональный язык программирования?
- 5. Как создать и реализовать язык программирования?
- 6. Язык программирования программирования RISC
- 7. Когда язык квалифицируется как функциональный язык?
- 8. Есть ли слабо типизированный/небезопасный ленивый + функциональный язык программирования?
- 9. Какой более функциональный язык программирования, Haskell или Python?
- 10. Python и функциональный язык взаимодействия
- 11. Язык программирования веб-программирования
- 12. Как убрать язык программирования
- 13. Agda как язык программирования
- 14. Как работает язык программирования?
- 15. c язык программирования, указатель
- 16. Как реализовать мини-язык?
- 17. Как реализовать упражнения в The Go Язык программирования
- 18. Функциональный JavaScript: как реализовать Function.prototype.not
- 19. Язык GAMMA, язык химического программирования
- 20. Ищете функциональный язык на основе YAML
- 21. C++ 0x (C++ 11) как функциональный язык?
- 22. Apache Ant как язык программирования
- 23. Как сделать собственный язык программирования?
- 24. Как создать язык программирования .Net?
- 25. PHP как рабочий язык программирования
- 26. Windows: Какой язык программирования?
- 27. Схема Язык программирования
- 28. Язык программирования и компилятор
- 29. Язык программирования R - Циклы
- 30. R Язык программирования ПЕТЛИ
Что-то вроде этого, я бы предположил: http://mitpress.mit.edu/sicp/ –
Вторая стратегия называется дефункционализацией: http://en.wikipedia.org/wiki/Defunctionalization –
Если вы хотите для реализации функционального языка игрушек с нуля я бы рекомендовал вам следовать рекомендациям здесь: * http://research.microsoft.com/en-us/um/people/simonpj/Papers/pj-lester-book/ Если вы хотите повторное использование времени выполнения Haskell, я бы рекомендовал начать здесь: * http://www.grabmueller.de/martin/www/pub/Transformers.en.html –