Как называется понятие "eval"?
Я ищу название концепции программирования, которая eval
является---eval
будучи функцией, которая выполняет строку как выражение.
Меня интересует термин для выполнения необработанных строк в коде eval('print("hello")')
, а также из файла, как выполнение любого .php
расширение. Термин, который я считаю подходящим, - это "метапрограммирование во время выполнения", но я хочу знать, является ли это правильным и существуют ли другие eval
функция представляет.
1 ответ
"Интерпретатор" - это термин, используемый для функции, которая обрабатывает строку (предоставленную непосредственно или в файле), представляющую какую-либо программу, и возвращает ответ.
Обычно интерпретаторы не "компилируют" строку в процессе получения ее ответа. Если вы знаете, что он компилирует строку, то интерпретатор на самом деле не совсем правильное слово, и вам, возможно, придется просто назвать его "eval(uator)". (Конечно, так как ваш пример - черный ящик, вы на самом деле не знаете, что он делает внутри, и люди, создающие такие инструменты, хотят, чтобы они работали быстро).
[Метапрограммирование - это программы, которые манипулируют другими программами, иногда ограничиваясь "проверкой" других программ. Вы можете утверждать, что ваша функция, чтобы вычислить ответ, выполняет (метапрограммирование) "проверку". Если бы вы сделали это, вы бы в конечном итоге смешали классическое компилирование в метапрограммирование, которое не является типичным представлением метапрограммирования; обычно метапрограммирование касается некомпиляции / интерпретации.]