在过去,我使用C++作为编程语言.我知道用C++编写的代码经过编译过程,直到它成为目标代码"机器代码".
我想知道Java在这方面是如何工作的.用户如何编写由计算机运行的Java代码?
我刚与一位同事进行了对话,并谈论了V8 JavaScript引擎.根据维基百科,
V8在执行之前将JavaScript编译为本机机器代码,而不是更传统的技术,例如解释字节码或将整个程序编译为机器代码并从文件系统执行.
where(纠正我,如果我错了)" 解释字节码 "是Java的工作方式," 编译整个程序 "将适用于C或C++等语言.现在我们想知道,辩论并提出关于差异,相似性的错误断言和推定.为了结束这一点,我建议询问SO专家.
那么,谁能够
笔记:
compiler-construction interpreter compilation interpretation
我试图理解在Decode和调度解释和线程解释中执行程序时的实际差异.
两者的例子都会有所帮助.
我理解Java字节码的工作原理以及汇编语言的工作原理.但是DDI和TI在哪里适合?
这个问题是关于HTTP标题"Accept-Encoding"的媒体类型的优先顺序,当它们具有相同的权重并且在我的博客上已被此评论提示时.
Accept-Encoding标头采用逗号分隔的媒体类型列表,浏览器可以接受例如gzip,deflate
甲品质因数也可以被指定为优先考虑例如在的情况下,其他的媒体类型"的gzip; Q = 0.8,放气",放气是优选的-但是不相关的这个问题.注意:"q = 0"的类型表示"不可接受".
RFC2616还指出应首先对媒体类型定义的"最具体的引用"进行加权.即"text/html; level = 1"应该用于"text/html" - 这也与问题无关.
在以下情况中,哪种媒体类型优先?
Accept-Encoding: gzip,deflate
Run Code Online (Sandbox Code Playgroud)
两种类型都具有1的等效品质因数,并且这两种类型对浏览器都是"可接受的" - 因此可以使用任何一种类型.我总是假设输入的第一个类型应该是"首选",但在RFC中似乎没有特定的例子或偏好.
人们可以解释Haskell中的lambda演算:
data Expr = Var String | Lam String Expr | App Expr Expr
data Value a = V a | F (Value a -> Value a)
interpret :: [(String, Value a)] -> Expr -> Value a
interpret env (Var x) = case lookup x env of
Nothing -> error "undefined variable"
Just v -> v
interpret env (Lam x e) = F (\v -> interpret ((x, v):env) e)
interpret env (App e1 e2) = case interpret env e1 of …Run Code Online (Sandbox Code Playgroud) continuations interpreter haskell lambda-calculus interpretation
我正在考虑建立一个在线C#解释器的想法,有点像Codepad.现在有明显的安全问题:
我对C#的了解并不是很微不足道,但我确信有很多关于它的知识,以及我没有想到的东西.你会注意什么?
一些精确,我计划在使用Mono的小型Linux VPS上运行它.
我想控制我ostream输出的chars和unsigned char's via是否<<将它们写成字符或整数.我在标准库中找不到这样的选项.现在我已经恢复了在一组替代打印功能上使用多个重载
ostream& show(ostream& os, char s) { return os << static_cast<int>(s); }
ostream& show(ostream& os, unsigned char s) { return os << static_cast<int>(s); }
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
我读过很多关于"解释"和"编译"的定义和陈述.但我仍然非常困惑.
从技术上讲,真正的解释和汇编之间的区别是什么?让我详细说明(请纠正我可能有的任何错误概念):
在java中,源代码被"编译"成ByteCode,然后将其"解释"和/或"及时编译"成机器代码.但是,及时编译和解释之间有什么区别?我的意思是,最后,据我猜测,主机的CPU只运行机器代码.因此,在解释中,指令也被转换成可由CPU理解的机器代码.那么,我们在哪里绘制即时编译和解释之间的界限?
PS这是我的观念.这可能是完全错误的.在这种情况下,请原谅我的愚蠢并纠正我.
谢谢.
以下引用句子的解释是什么UML Reference Manual?
When an orthogonal state is entered, the number of control threads
increases as a direct substate in each orthogonal region becomes
active.
When the orthogonal state is exited, the number of control
threads decreases.
这是一个纯粹的理论问题,为了清楚起见,我通常不会编写这段代码。
为什么这个相当模糊的声明是合法的
int a = 1, b = 2;
int c = a---b; // a=0, b=2, c=-1
Run Code Online (Sandbox Code Playgroud)
(它被解释为a-- -b)
而这个不是?
int c = a-----b;
Run Code Online (Sandbox Code Playgroud)
第一个陈述也可以解释为a- --b,而第二个陈述显然只有 1 个逻辑解释a-- - --b。
还有另一个好奇的:
int c = a--- -b; // a=0, b=2, c=3
Run Code Online (Sandbox Code Playgroud)
(并且int c = a----b; 不是法律声明)
Java中的表达式解释是如何定义的?我尝试搜索 JLS,但尚未找到此问题的答案。
interpretation ×10
compilation ×3
java ×3
interpreter ×2
c# ×1
c++ ×1
compression ×1
decrement ×1
formatting ×1
haskell ×1
header ×1
http ×1
lexer ×1
ostream ×1
rfc2616 ×1
security ×1
state ×1
syntax ×1
uml ×1