Простите мой английский. Недавно я пытался понять различные части компилятора и реализовать их на языке воспроизведения. Мне интересно, каковы задачи семантического анализатора, потому что многие вещи, которые я прочитал, которые предполагается выполнять семантическим анализатором, на самом деле не относятся к динамическим языкам, таким как проверка типов, проверка области видимости и т. Д., Потому что эти вещи проверяются при запуске время.
Так что я думаю, что некоторые из заданий семантического анализатора для динамического языка (например, LUA или PYTHON или RUBY) относятся к
- убедитесь, что назначения не плохие, как 1 = а или 5 = 5
Тем не менее, я не уверен, какие еще задания выполняет фаза семантического анализа компилятора для динамических языков. Кажется, что в динамических языках он выполняет очень небольшую работу, потому что большая часть выполняется во время выполнения. Какие другие общие задачи выполняет семантический анализатор для динамических языков? Я чувствую, что мне не хватает большей части смыслового анализа. Спасибо.