>В Racket аналог compile-file только компилирует файл, но не исполняет его. А load компилирует и исполняет - совершенно аналогично compile-file в CL.
Функция compile-file не исполняет файл. Она компилирует.
А начинает исполнение кода в файле функция load - она тоже может скомпилировать код(SBCL так и делает).
Фишка в том, что в CL состояние то одно(все стадии - interleavable), и любой код можно выполнить при компиляции.
Такие дела.
>Я какбе намекну на тот факт, что грамматики бывают не только контекстно-свободными.
Дак и? Все можно описать EBNF-подобной фиговиной.
А грамматика CL она не то, что даже context-sensitive, она, как бы это сказать, state-sensitive. Нет грамматики, короче, кроме стандартной. Есть просто правила в компиляторе и лексере, которые переопределяются.
>не переписав ридер (как минимум) Ридер это лексер. Не парсер даже. Именно что лексер. Нахер лексер переписывать?
no subject
Date: 2011-01-19 09:14 am (UTC)Функция compile-file не исполняет файл. Она компилирует.
А начинает исполнение кода в файле функция load - она тоже может скомпилировать код(SBCL так и делает).
Фишка в том, что в CL состояние то одно(все стадии - interleavable), и любой код можно выполнить при компиляции.
Такие дела.
>Я какбе намекну на тот факт, что грамматики бывают не только контекстно-свободными.
Дак и? Все можно описать EBNF-подобной фиговиной.
А грамматика CL она не то, что даже context-sensitive, она, как бы это сказать, state-sensitive. Нет грамматики, короче, кроме стандартной. Есть просто правила в компиляторе и лексере, которые переопределяются.
>не переписав ридер (как минимум)
Ридер это лексер. Не парсер даже. Именно что лексер. Нахер лексер переписывать?