为什么有些语言需要在调用之前在代码中声明函数?

sme*_*ida 4 comparison scope programming-languages language-comparisons lexer

假设你有这个伪代码

do_something();

function do_something(){
   print "I am saying hello.";
}
Run Code Online (Sandbox Code Playgroud)

为什么有些编程语言需要调用do_something()才能显示在函数声明下面才能运行代码?

Ign*_*ams 7

编程语言使用符号表来保存源代码中使用的各种类,函数等.有些语言在一次通过中编译,一旦使用它们,符号就会从符号表中拉出.其他人使用两遍,其中第一遍用于填充表,然后第二遍用于查找条目.