Техническое название для кода, не являющегося частью какой-либо функции
Каким будет технический термин для кода на языках сценариев, который не является частью какой-либо функции и выполняется первым при импорте сценария?
Например, в Python:
import anything
#what is the technical name for this code?
a = 1
doABackFlip()
def myFunction():
#Not this code since it is part of a function
b = 2
runSomething()
class myClass():
#This is in a class so not this code either
В JavaScript:
<script>
//What is the technical name of this code?
a = 1
doABarrelRoll()
function myFunction() {
//Not this stuff. Part of a function again
doSomethingCool()
}
</script>
Я специально искал термин для одного или двух слов для этого кода. Было бы лучше, если бы это был либо обычный дескриптор, либо еще лучше, что-то придуманное в какой-то академической статье еще в 60-х годах.
2 ответа
Я не уверен, что у кода, выполняемого вне функций, есть определенное имя, но у "пробела", в котором они выполняются, есть общее имя в разных языках: это называется глобальной областью действия.
Обычно код, работающий в глобальной области, называется просто "код, работающий в глобальной области".
Мне очень нравится ваш вопрос, и я не могу дать на него однозначный ответ. Однако я бы хотел немного рассуждать здесь.
Когда вы пишете парсер для обязательного языка, вы столкнетесь с чем-то вроде StatementList
- который является списком заявлений. Так что все внутри окружающего "блока" (то есть функции, методы, но также тела цикла или просто {
а также }
в других блоках на с-подобных языках) будет представлен как StatementList
, Поэтому для меня здесь возникает вопрос: как называется окружающий узел в абстрактном синтаксическом дереве (AST). И пока все, что я видел, это: "Программа".
Также это имя, которое этот список операторов имеет в Паскале.