我目前正在为连续环境中的编程开发一种新语言(将其与电气工程相比较),并且我对某种语言结构有一些想法.
让我通过解释然后按定义解释这个特征:
x = a U b;
Run Code Online (Sandbox Code Playgroud)
x变量在哪里,a而且b是其他变量(或静态值).这就像是a和之间的结合b; 没有重复,也没有具体的订单.
with(x) {
// regular 'with' usage; using the global interpretation of "x"
x = 5;
// effectively will do:
// x = a U b U 5;
// a = 5;
// b = 5;
// Thus, when "a" or "b" changes, "x" is still equal to "5".
}
with(x = a) {
// this code block is executed when the "x" …Run Code Online (Sandbox Code Playgroud) 为什么以下语法正确:
x = y+++y;
Run Code Online (Sandbox Code Playgroud)
它意味着什么
y++ + y或y + ++y意味着什么y * 2 + 1(不确定这一点,但是:非常含糊不清)
但是这种语法不正确:
x = y+++++y;
Run Code Online (Sandbox Code Playgroud)
这应该意味着
y++ + ++y,这意味着什么y * 2 + 2
这种语法的错误是否有原因?(编辑:谢谢你解释为什么它是无效的语法,但这不是我对这个问题的意图.)
(编辑:当然我没有在真正的代码中使用它,纯粹是为了解析器/词法分析器;但我想知道为什么解析器不喜欢这个;最后一个例子看起来比第一个看起来更不明确.)
(编辑:
int i = 0;
int j = (i = 3)+++i;
Run Code Online (Sandbox Code Playgroud)
也是无效的,虽然它对我来说似乎非常明确,(i = 3)是一个值,因此(值+值)然后是++i值令牌.)
当我查看Amazon.com并且我看到他们的页面URL时,它没有.htm,.html或者.php在URL的末尾.
它就像:http:
//www.amazon.com/books-used-books-textbooks/b/ref=topnav_storetab_b?ie = UTF8&node = 283155
为什么以及如何?这有什么样的延伸?
题
以下两个x86指令之间的(非平凡)差异是什么?
39 /r CMP r/m32,r32 Compare r32 with r/m32
3B /r CMP r32,r/m32 Compare r/m32 with r32
Run Code Online (Sandbox Code Playgroud)
背景
我正在构建一个Java汇编程序,我的编译器的中间语言将使用它来生成Windows-32可执行文件.
目前我有以下代码:
final ModelBase mb = new ModelBase(); // create new memory model
mb.addCode(new Compare(Register.ECX, Register.EAX)); // add code
mb.addCode(new Compare(Register.EAX, Register.ECX)); // add code
final FileOutputStream fos = new FileOutputStream(new File("test.exe"));
mb.writeToFile(fos);
fos.close();
Run Code Online (Sandbox Code Playgroud)
输出有效的可执行文件,其中包含TEXT部分中的两条CMP指令.输出到"text.exe"的可执行文件不会有任何意义,但这不是重点.该类Compare是CMP指令的包装器.
上面的代码生成(使用OllyDbg检查):
Address Hex dump Command
0040101F |. 3BC8 CMP ECX,EAX
00401021 |. 3BC1 CMP EAX,ECX
Run Code Online (Sandbox Code Playgroud)
差别很小:如果我使用39字节操作码:
Address Hex dump Command …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的iPhone应用程序中调整UIButton的大小.我有一个UIButton合成,当我调用下面的代码时,它会在屏幕上移动,但按钮的宽度和高度永远不会改变.
button.frame.size = CGRectMake(104, 68, 158, 70);
Run Code Online (Sandbox Code Playgroud)
例如,当我将高度(70)更改为40时,按钮的高度不会改变.但是,如果我更改x或y,它将在屏幕上移动.
有任何想法吗?
我正在开发一种新语言.我最初的目标是为Windows平台编译为原生x86,但现在我有疑问.
我见过一些新语言针对JVM(最着名的Scala和Clojure).当然,不可能轻易地将每种语言都移植到JVM上; 这样做可能会导致语言和设计的微小变化.
在提出这个问题之后,我甚至怀疑这个决定.我现在知道一些"专业"JVM参数.最初的问题是:在为新语言创建编译器时,目标JVM是个好主意吗?
更新了问题:在Windows上以JVM而不是x86为目标有哪些缺点?
鉴于我可以将PID从进程发送到另一个进程,甚至跨节点,如果我从不同进程(可能在不同节点)的进程中收到Pid,我如何找出有问题的PID在/中运行的节点/上?
erlang:process_info(Pid) 似乎没有这方面的信息.
谢谢.
如果我有一台机器,称之为机器1,这可以解决问题:它只是一台机器,而不是图灵机.它可以解决一个特定的问题.如果在通用图灵机上可以解决这个完全相同的问题,那么我的原始机器,1,通用图灵机也是如此?
这并不适用于所有问题,这已经是一个问题.是否存在任何具有此描述属性的问题?如果绝对不是真的那么,为什么呢?
有人可以举例说明要解决的问题.如果我的原机1解决了这个问题,那么肯定会成为通用车床吗?或者这样的问题不存在吗?如果它不存在,为什么?
我很感兴趣,但无法理解......谢谢.
编辑:使问题更清楚.
我正在寻找Java标准版的高端图形库.我知道一些相当低级的库:AWT/Swing,JOGL,SDL.是否有替代方案?
我的要求是(至少):
并且,可选:
我理解是否没有符合所有要求的库/框架,如果是这样,你能评论它的可扩展性吗?
编辑:
除了Processing之外还有其他选择吗?处理是否可用(并且容易?)作为库?
引擎盖下的原子操作如何工作?
原子操作是否所谓的"等待"?
我正在寻找对原子操作的"最小公约除数"的描述.所有原子操作共享什么?