小编Mar*_*tin的帖子

虚拟机如何工作?

我一直在研究编程语言是如何工作的,其中一些有一个所谓的虚拟机.我知道这是在另一种编程语言中对编程语言进行仿真的某种形式,并且它的工作方式与使用堆栈执行编译语言的方式相同.我做对了吗?

根据我所做的附带条件,让我感到困惑的是,许多非编译语言允许使用"自由"类型系统的变量.以Python为例,我可以这样写:

x = "Hello world!"
x = 2**1000
Run Code Online (Sandbox Code Playgroud)

字符串和大整数是完全不相关的,并且在内存中占用不同的空间,那么这个代码如何在基于堆栈的环境中表示?这到底发生了什么?x是否指向堆栈中的新位置并且旧的字符串数据未被引用?这些语言不使用堆栈吗?如果没有,它们如何在内部表示变量?

stack dynamic-typing vm-implementation

18
推荐指数
1
解决办法
4946
查看次数

将boost :: tokenizer与字符串分隔符一起使用

我一直在寻找boost :: tokenizer,我发现文档很薄.是否有可能使它像一个像"海豚 - 猴子 - 狒狒"这样的字符串进行标记,并使每一个字都成为一个标记,以及每一个双字母都是一个标记?从示例中我只看到允许单个字符分隔符.库是否不够先进,不适合更复杂的分隔符?

c++ string boost tokenize

11
推荐指数
2
解决办法
8428
查看次数

F#:'关键字'时总是"意外"

VS2010 Beta 2 F#编译器总是抱怨我对when关键字的使用,即使使用应该起作用的复制粘贴代码,例如这些代码段中的任何一个.例如,这是我在尝试执行一个非常简单的表达式时得到的错误:

"错误FS0010:表达式中出现'意外关键字'.预期' - >'或其他标记."

[for i in 1..50 when i < 10 -> i]  
---------------^^^^
Run Code Online (Sandbox Code Playgroud)

syntax f# visual-studio-2010-beta-2

8
推荐指数
2
解决办法
1767
查看次数

从内存加载图像,GDI+

这是一个快速而简单的问题:使用 C++ 中的 GDI+,我将如何从内存中的像素数据加载图像?

c++ graphics gdi+ load image

4
推荐指数
3
解决办法
9395
查看次数

复制工会案例但在F#中使用不同的值

在F#中,我想基于现有实例构造一个区分联合的实例(正确的术语?).例:

type union Currency =
    | Dollar of int
    | Euro of int

let lowPrice = Dollar 100 (* or, it could be *) let lowPrice = Euro 100
let highPrice = (* of the same union case as lowPrice but with value 200 *)
Run Code Online (Sandbox Code Playgroud)

我可以插入什么代码来代替注释来创建该效果?

f# functional-programming discriminated-union

3
推荐指数
1
解决办法
160
查看次数