1

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

Поскольку я не знаком с функциональными языками, для меня это слишком сложно разработать. Есть ли какие-то ресурсы о синтаксисе и семантике простого функционального языка? Учебник о том, как это сделать, будет очень полезен.

+2

У вас есть путь назад. Сначала вам нужно понять функциональные языки, прежде чем подумать, что вы будете интерпретировать их по определению. Просто выберите один и изучите одно, лучшее для вас направление. Во всяком случае, закрытие как не настоящий вопрос; слишком широким. – GManNickG

+0

Лучше искать реализацию функционального программирования _simple_, которую вы можете изучить. Попытка сделать это сама по себе - это огромная задача. – vonbrand

+1

Синтаксис не имеет абсолютно никакого отношения к тому, является ли язык функциональным, за исключением, возможно, обеспечения синтаксиса «анонимной функции». –

ответ

6

Как ни странно, есть. В книге Structure and Interpretation of Computer Programs есть упражнения, в которых схема реализована на Схеме. Но подготовительный материал нельзя пропустить. Вам нужно будет это знать (и как программировать на функциональном языке), особенно когда вы идете реализовать интерпретатор в интерпретаторе.

1

Вы можете сделать хуже, чем читать анатомию Лиспа Джона Аллена. Для ленивых языков.

7

Пожалуйста, обратите внимание:

Implementing functional languages: a tutorial 
Simon Peyton Jones and David Lester. Published by Prentice Hall, 1992. 

Available online, которая охватывает все более сложные подходы к реализации скомпилированные ленивых функциональных языков.

Последующие действия с the STG machine paper, описывающие ядро ​​среды выполнения GHC.

Смежные вопросы