标签: interpreter

JIT代码生成技术

虚拟机如何动态生成本机代码并执行它?

假设您可以确定要发出的本机机器操作码是什么,那么您如何实际运行它?

将助记符指令映射到二进制代码,将其填充到char*指针并将其作为函数进行转换并执行是不是很麻烦?

或者你会生成一个临时共享库(.dll或.so或其他)并使用标准函数将其加载到内存中LoadLibrary吗?

interpreter jit .net-assembly

19
推荐指数
2
解决办法
1525
查看次数

我们可以在硬件中实现一个java解释器本地执行Java字节码吗?

如果我们在硬件中实现java解释器那么我们如何实现java字节码的体系结构中立性... java是否使用JIT(只是在时间解释器中)?以及这些与虚拟机概念的操作系统和java虚拟机(JVM)有何关系

java virtual interpreter jit jvm

19
推荐指数
3
解决办法
7501
查看次数

Python解释了代码优化

请考虑以下代码段:

dict [name] = 0
dict [name] += 1
dict [name] += 1
Run Code Online (Sandbox Code Playgroud)

python解释器是否自动识别对字典值的重复引用并使用缓存的本地引用?,有点类似于C/C++的别名优化,变成这样:

value = dict [name]
value = 0
value += 1
value += 1
Run Code Online (Sandbox Code Playgroud)

显然,手动执行此操作并不是什么大问题,但我很好奇是否真的有必要.任何见解,反馈等都表示赞赏.

python optimization interpreter

19
推荐指数
2
解决办法
553
查看次数

如果使用颜色提示,请查看如何在Python readline中修复列计算

我使用标准技巧来定制交互式Python会话:

$ cat ~/.bashrc
export PYTHONSTARTUP=~/.pystartup

$ cat ~/.pystartup
import os
import sys
import atexit
import readline
import rlcompleter

historyPath = os.path.expanduser("~/.pyhistory")

def save_history(historyPath=historyPath):
    import readline
    readline.write_history_file(historyPath)

if os.path.exists(historyPath):
    readline.read_history_file(historyPath)

term_with_colors = ['xterm', 'xterm-color', 'xterm-256color', 'linux', 'screen', 'screen-256color', 'screen-bce']
if os.environ.get('TERM') in term_with_colors:
    green='\033[32m'
    red='\033[31m'
    reset='\033[0m'
    sys.ps1 = red + '>>> ' + reset
    sys.ps2 = green + '... ' + reset
del term_with_colors

atexit.register(save_history)
del os, sys, atexit, readline, rlcompleter, save_history, historyPath

现在我得到上下文敏感的完成和颜色提示.

问题来自颜色提示 - 当我在交互式Python会话中调用历史搜索 - 向后搜索 …

python terminal interpreter readline

19
推荐指数
2
解决办法
2283
查看次数

在Haskell中实现语言解释器

我想在Haskell中实现一个命令式语言解释器(用于教育目的).但是我很难为我的翻译创建正确的架构:我应该如何存储变量?如何实现嵌套函数调用?我该如何实现变量范围?如何在我的语言中添加调试功能?我应该使用monads/monad变压器/其他技术吗?等等

有没有人知道关于这个主题的好文章/论文/教程/来源?

interpreter haskell

19
推荐指数
2
解决办法
1万
查看次数

为什么人们说python很慢因为它被解释了?它有.pyc文件

为什么人们只需要在需要优化时使用已编译的python文件?然后代码将不必互相编译然后编译.

有什么我想念的吗?在我看来,这似乎是一个简单的问题.

python interpreter compiled

19
推荐指数
2
解决办法
1613
查看次数

删除没有名称的 Anaconda 环境?

我试图从 Pycharm 创建一个 Anaconda 环境,但是当我尝试不同的路径时,其中一个环境创建时没有名称。像下面这样:

base                  *  /Applications/anaconda3
snowflaks                /Users/usr/.conda/envs/snowflaks
                         /Users/usr/anaconda3/envs/snowflaks
Run Code Online (Sandbox Code Playgroud)

我想删除名称为空的环境,但找不到方法。我尝试使用“\”使名称为空,但没有用。此外,anaconda3 中没有 envs 文件夹(这可能是发生这种情况的原因?),所以我也不能删除它。

有什么建议?

谢谢!

environment interpreter pycharm anaconda

19
推荐指数
1
解决办法
4017
查看次数

Metacircular Interpreter的确切定义是什么?

调用用C编写的C编译器或用PHP metacircular编写的PHP解释器是否合法?这个定义是否仅对特定类型的语言有效,比如Lisp?简而言之,口译员被称为Metacircular应满足的条件是什么?

c lisp scheme interpreter self-interpreter

18
推荐指数
2
解决办法
4357
查看次数

避免臭名昭着的"eval(parse())"构造

好的,所以我正在运行一些循环来处理存储在列表对象中的数据.我fortune不记得臭名昭着的警告不要使用eval(parse(mystring)),我想到了这个:

Rgames> bar
$foo
$foo$fast
[1] 1 2 3 4 5

$foo$slow
[1]  6  7  8  9 10


$oof
$oof[[1]]
[1]  6  7  8  9 10

$oof[[2]]
[1] 1 2 3 4 5


Rgames> rab<-'bar'
Rgames> do.call('$',list(as.name(rab),'oof'))
[[1]]
[1]  6  7  8  9 10

[[2]]
[1] 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

通常我会选择一个列表(其中bar一个是这样的),然后是列表中的一个元素(例如 oof),其中包含我的数据.上面的代码与之相同eval(parse(text=paste(rab,'$','oof',sep=''))).
我正在做这一切,因为我想使用列表的名称而不是[[x]]符号作为安全机制(因为并非所有列表对象的内容都以相同的顺序).我是否应该坚持使用D中的DWin的建议:eval(解析(...))通常不是最理想的

parsing interpreter expression eval r

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

模拟java.lang.Thread的最佳方法是什么?

我正在为Java 6 *1开发变换器,它执行一种部分评估,但为了简单起见,我们考虑Java程序的抽象语法树解释.

如何Thread通过解释程序模拟行为?

目前,我想到了以下几点:

AstInterpreter应该实现java.lang.Runnable.它还应该重写java.lang.Thread(或其子类)的每个new-instance-expression,用新的AstInterpreter实例替换Thread's target(java.lang.Runnable):

编辑:提供更复杂的示例.

编辑2:备注1.

目标计划:

class PrintDemo {
   public void printCount(){
    try {
         for(int i = 5; i > 0; i--) {
            System.out.println("Counter   ---   "  + i );
         }
     } catch (Exception e) {
         System.out.println("Thread  interrupted.");
     }
   }
}

class ThreadDemo extends Thread {
   private Thread t;
   private String threadName;
   PrintDemo  PD;

   ThreadDemo( String name,  PrintDemo …
Run Code Online (Sandbox Code Playgroud)

java multithreading interpreter bytecode abstract-syntax-tree

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