假设X是输入语言,Z是输出语言,f是编译器,用Y语言编写。
f = X -> Z
因为f只是一个程序,我认为Y可以是任何语言,对吗?所以我们可以有编译器f1,f2,每个编译器都是用Y1和Y2编写的。
f1 = f Y1
f2 = f Y2
g = Z -> M
h = g . f # We get a compiler X -> M
以cpython编译器为例,X是Python,Z是Python代码,Y是C。
cpython = Python -> PythonVMCode C
interpreter = PythonVMCode -> Nothi
一般来说,我对Python和编程都比较陌生,目前正在学习Python,这本书是由Al Sweigart写的"Automate the book with Python“。正如书中所推荐的,我想自己通过查看模块gamesbyexample (https://github.com/asweigart/pythonstdiogames/)来做一些编程练习。 但是,每当我启动其中一个游戏时,我就会在终端中收到以下错误消息: AdminisatorsMBP:~ simon$ /Library/Frameworks/Python.framework/Versions/3.8/bin/python
那么,如果有可能做到这一点呢?就像igo()所做的那样!它为Go编程语言在Java虚拟机上提供了一个完整的编译器和运行时环境!
如果可能的话!我需要学习或知道什么?
我想要做的就是写一个python包来运行python解释器!
from mypackage import Run
Run('path to go application')
我对编码很陌生,我正在使用Python。我制作了一个简单的计算器,只是为了处理空闲程序,我不断地得到这样的错误:
"ValueError: could not convert string to float: 'bread'"
这是我写的代码。
total = float("bread") + float("coffee") + float("milk")
我希望有人能告诉我这是怎么回事。
我想找出某个函数的值,这个函数本质上是递归的。例如,考虑如下定义的函数:
A(m,n) = n+1 if m=0
= A(m-1,A(m-1,n)) if m is not 0
在python中,我可以很容易地编写这个函数:
def A(m,n):
if(m==0):
return n+1
else:
return A(m-1,A(m-1,n))
但是我不能用FORTRAN写一个类似的函数。基本原因是FORTRAN函数不允许自己成为自己的参数。有什么办法可以解决这个问题吗?
提前谢谢。