Mic*_*l W 5 python compiler-construction
我想了解Python如何在基础层面工作,这有助于我更多地了解其他编译/解释语言的内部工作原理.不幸的是,编译器类现在有点远了.从我在本网站和其他地方阅读的内容来看,人们回答"用Python编写的基本语言"似乎表明,在谈论语言的"规则"与使用语言规则的方式之间存在差异.那么,说Python(和其他高级语言)本质上只是用任何自然语言"编写"的规则集是否正确?然后,它们实际使用的方式(使用的意思是编译/解释实际创建的东西)可能会有所不同,各种语言被用来实现编译器?所以在这种情况下,CPython,IronPython和Jython在语法上是相同的语言,它们都遵循相同的规则集,只是这些规则是用它们各自的语言实现的.
请告诉我,如果我对此的理解是正确的,如果你有任何补充,可能会进一步巩固我的理解,或者如果我公然错了.
小智 7
用Python编写的代码应该能够在任何Python解释器上运行.Python本质上是一种带有参考实现(CPython)的编程语言的规范.每当Python规范和PEP不明确时,其他解释器通常会选择实现相同的行为,除非他们有理由不这样做.
话虽这么说,用Python编写的程序完全有可能在不同的实现上表现不同.这是因为许多程序员冒险进入"未定义的行为".例如,CPython有一个"全局解释器锁",这意味着一次只有一个线程实际执行(以某些条件为模),但其他解释器没有这种行为.因此,例如,关于原子性的不同行为(例如,每个字节码指令在CPython中是原子的)与其他解释器一样.
您可以将其视为C. C语言规范,但有许多编译器实现它:GCC,LLVM,Borland,MSVC++,ICC等.有编程语言和这些编程语言的实现.