我正在努力更好地理解这种差异.我在网上找到了很多解释,但它们倾向于抽象的差异而不是实际的含义.
我的大部分编程经验都是CPython(动态,解释)和Java(静态,编译).但是,据我所知,还有其他类型的解释和编译语言.除了可执行文件可以从编译语言编写的程序中分发之外,每种类型都有任何优点/缺点吗?通常,我听到有人认为解释性语言可以交互使用,但我相信编译语言也可以有交互式实现,对吗?
python java compiler-construction interpreter programming-languages
如何重复上一个命令?通常的键:Up,Ctrl + Up,Alt-p不起作用.他们产生荒谬的人物.
(ve)[kakarukeys@localhost ve]$ python
Python 2.6.6 (r266:84292, Nov 15 2010, 21:48:32)
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello world"
hello world
>>> ^[[A
File "<stdin>", line 1
^
SyntaxError: invalid syntax
>>> ^[[1;5A
File "<stdin>", line 1
[1;5A
^
SyntaxError: invalid syntax
>>> ^[p
File "<stdin>", line 1
p
^
SyntaxError: invalid syntax
>>>
Run Code Online (Sandbox Code Playgroud) 当使用启动django应用程序时python manage.py shell,我得到一个InteractiveConsole shell - 我可以使用Tab完成等.
Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
Run Code Online (Sandbox Code Playgroud)
刚刚启动python解释器时python,它不提供制表符完成.
有人能告诉我django正在做什么来给我一个交互式控制台,或者我需要做什么来启动没有django应用程序的交互式控制台?
我想知道是否有类似C语言的解释器.也就是说,在Linux终端中我可以输入"python"然后在该解释器中编码.(我不确定翻译正确的词).这对于测试不同的东西真的很有帮助,我很好奇C是否存在类似的东西.虽然我对此表示怀疑.我能想到的唯一能做的就是C shell ......
是否有像http://codepad.org/或http://www.trypython.org/这样使用Python 3 的在线翻译?
回答
由于问题已经结束,我在这里给出另一个答案.
Wandbox为许多语言提供在线REPL,包括Python 2.x和3.x,C++和Java.
以下两个代码片段之间是否存在任何最终差异?第一个为函数中的变量赋值,然后返回该变量.第二个函数只是直接返回值.
Python会将它们转换为等效的字节码吗?其中一个更快吗?
案例1:
def func():
a = 42
return a
Run Code Online (Sandbox Code Playgroud)
案例2:
def func():
return 42
Run Code Online (Sandbox Code Playgroud) 一个经典的编程练习是在Lisp/Scheme中编写一个Lisp/Scheme解释器.可以利用完整语言的强大功能为该语言的子集生成解释器.
Haskell有类似的练习吗?我想使用Haskell作为引擎来实现Haskell的子集.当然可以做到,但有没有可供查看的在线资源?
我正在探索使用Haskell作为一种语言来探索我正在教授的离散结构课程中的一些概念的想法.在这个学期,我已经选择了Miranda,这是一种激发Haskell的小语言.米兰达做了我想做的事情的90%左右,但哈斯克尔做了大约2000%.:)
所以我的想法是创建一种具有Haskell功能的语言,我希望并禁止其他所有功能.随着学生的进步,我可以在掌握了基础知识后有选择地"开启"各种功能.
教学"语言水平"已成功用于教授Java和Scheme.通过限制他们可以做的事情,你可以防止他们在掌握你想要教授的语法和概念的同时在脚中射击.并且您可以提供更好的错误消息.
我来自Python背景,我可以添加代码中的任何位置
import pdb; pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
并且在运行时我将被放入该位置的交互式解释器中.是否有scala的等价物,或者这在运行时是不可能的?
如何在Ruby中测量方法和该方法中各个语句所花费的时间.如果您看到以下方法,我想测量方法所花费的总时间以及数据库访问和redis访问所用的时间.我不想在每个声明之前写Benchmark.measure.ruby解释器是否为我们提供了任何钩子?
def foo
# code to access database
# code to access redis.
end
Run Code Online (Sandbox Code Playgroud) 我在文件中定义了一些Scala函数,而不是在类中定义,我想在Scala解释器中使用它们.我知道我可以说scala filename.scala只是运行文件并退出解释器,但我想运行该文件,然后留在解释器中,以便我可以做一些测试.谁能告诉我如何简单地将文件加载到解释器中,以便我可以使用其中定义的函数?
interpreter ×10
python ×5
shell ×3
scala ×2
benchmarking ×1
c ×1
debugging ×1
haskell ×1
java ×1
python-3.x ×1
python-idle ×1
ruby ×1
time ×1
virtualenv ×1