首页 \ 问答 \ Scala / Clojure使用什么汇编程序?(What assembler did Scala/Clojure use? [closed])

Scala / Clojure使用什么汇编程序?(What assembler did Scala/Clojure use? [closed])

我一直在研究编译器(在JVM上运行)。 我成功地找到了两个针对它的汇编程序。

然而,我发现的两个,一个是Jasmin,维护得不是很好(2010年的最新更新)。 另一方面,Krakatau,有点记录不清。

我可以帮助注意到有很多成熟的JVM语言。 而我只是想知道,他们使用了什么汇编程序? 或者他们只是充分利用原始字节码? 据我所知,除了简单的字节码指令外,还有很多其他功能。 使用汇编程序也会容易得多。

他们是否有成熟(维护良好且记录良好)的JVM组装商? 或者我只是从头开始学习JVM基础知识?


I've been doing some research about compilers (to be ran on JVM). And I've successfully found two assemblers which targets that.

However, the two I found, one is Jasmin, which not quite well maintained (last update in 2010). And the other,Krakatau, is kind of poor-documented.

I could help noticing that there are a lot of mature JVM languages. And I'm just wondering, what assembler did they use? Or did they just make full use of raw bytecodes? To my understanding, there is a lot more besides simple bytecode instructions. And it will be a lot easier using assembler also.

Are they any mature (well-maintained and well-documented) JVM assemblers out there? Or Do I just start from scratch, learn JVM basics?


原文:https://stackoverflow.com/questions/26589468
更新时间:2019-11-21 11:13

最满意答案

Clojure使用ASM库直接生成字节码。 ASM是一个非常好的和广泛使用的库。


Clojure uses the ASM library to generate bytecode directly. ASM is a very good and widely used library for this purpose.

2014-10-27

相关问答

更多

是否有可能从函数中获取sizeof?(Is it possible to get sizeof from a function?)

您可以使用功能模板: template <typename T> void do_work(T* stuff) { const size_t s = sizeof(T); .... } 编辑 :数组版本: template<typename T, size_t N > void do_work(T (&array)[N] ) { const size_t s = N * sizeof(T); } You can use a function template: template

两个图节点之间的固定长度路径(Fixed length path between two graph nodes)

如果您有节点正在寻找根据跳数查找路由,那么图表可能是正确的方法。 我不确定我理解你要做什么以及约束是什么,特别是关于“任何节点可以连接到任何其他节点”......这似乎有点开放。 然而,无视这一点; 用一些图表表示: 它似乎从第一个节点开始,并从那里进行深度优先搜索,并在(a)所采用的跳数大于指定数量或(b)我们到达第二个节点时终止搜索; 这将决定连接两个节点(最多)多个跳跃的第一条(不仅是)路径。 如果它必须完全是指定的跃点,如果跳过了,则终止搜索的任何分支,如果你也到达了第二个节点,则终止成

有没有办法在SQL中使用日期的一部分进行SELECT?(Is there a way to SELECT by a part of a date in SQL?)

你也可以这样做 SELECT * FROM table WHERE datetime LIKE '2008-08-01% ' 要么 SELECT * FROM table WHERE datetime LIKE '2007-05%' You can also do SELECT * FROM table WHERE datetime LIKE '2008-08-01%' or SELECT * FROM table WHERE datetime LIKE '2007-05%'

如何使用正则表达式匹配某些单词中未包含的字符?(How can I use use a regex to match characters that aren't included in certain words?)

你可以在lookbehinds中放置前瞻(反之亦然;任何组合,真的,只要每个lookbehind都有固定的长度)。 这允许您将两个条件合并为一个( 不以X开头,以Y结尾 ): lep(?<!telep(?=hone))(?<!filep(?=ath)) 将看起来最后放在最后也更有效率。 即使没有后缀(例如, lep(?<!filep)来排除filep ),我建议这样做。 但是,从用户输入生成正则表达式,如lep -telephone -filepath ,可能会非常繁琐乏味。 如果可以的话,首

配置IIS 7.0元数据库问题(configure IIS 7.0 meta database issue)

请参阅此链接IIS 7.0 Massive Number of Timer_MinBytesPerSecond [编辑] 您必须了解IIS6和IIS7之间的差异。 要查找元数据库,请转到IIS7配置路径剖析 尝试此命令(在发行说明中找到:Windows Server 2008 R2的此Beta版本中的重要问题 : appcmd set config -section:webLimits / minBytesPerSecond:0 有关APPCMD的帮助 See this link IIS 7.0

datetime.strptime( '2017-01-12T14:12:06.000-0500', '%Y-%间- %的dT%H:%M:%S%F%Z')(datetime.strptime(‘2017-01-12T14:12:06.000-0500’,'%Y-%m-%dT%H:%M:%S.%f%Z'))

Python 2.7的解决方案 从评论中可以清楚地看出OP需要Python 2.7的解决方案。 显然,python 2.7的strptime中没有%z ,即使文档声称相反 ,引发的错误是ValueError: 'z' is a bad directive in format '%Y-%m-%dT%H:%M:%S.000%z' 。 要解决此问题,您需要先解析没有时区的日期,然后再添加时区。 不幸的是,您需要为此子类化tzinfo 。 这个答案是基于这个答案 from datetime import

我刚刚安装了VS.NET 2003,这使我的新版本(2005/2008)瘫痪了(I have just installed VS.NET 2003 which left my newer versions (2005/2008) crippled)

rifferte是正确的,因为最安全的是安装在另一个它们被释放。 此时可能最好的做法是修复Visual Studio 2008安装。 您可以通过“控制面板” - >“添加删除程序”菜单执行此操作。 这应该可以解决您所看到的问题。 rifferte is correct in that it's safest to install in the other they are released. Probably the best thing to do at this point is to re

TFS Build Server从2008年升级到2012年(TFS Build Server upgrade from 2008 to 2012)

我已经设法通过在Build Targets文件中复制BuildAgentUri属性来解决上述问题,然后它工作了。 可从以下URL获得更多解释: https://social.msdn.microsoft.com/Forums/vstudio/en-US/389da76d-4637-4556-a68f-bafb9febc8ea/how-to-troubleshoot-trror-in-ant-build-with-tfs-2012?论坛=三通 I have managed to resolve t

相关文章

更多

最新问答

更多
  • 用于Json解析的Phonegap插件(Phonegap Plugin for Json parsing)
  • ActionScript 2加载另一个加载其他文件的SWF - 相对路径/网址问题(ActionScript 2 load another SWF that loads other files - relative path/url problem)
  • 使用sql将一些列值放入新列中(put some column values in a new column using sql)
  • 在iOS中为NivevehGL设置View的背景图像(Setting the background image of the View for NivevehGL in iOS)
  • 从普通的C#开发人员到普通的Java开发人员需要多长时间?(How long will take from an average C# developer to an average Java developer?)
  • 通过datetimefield SQL Server加入(Joining by datetimefield SQL Server)
  • Python中是否有任何智能打印方法?(Are there any smart print methods in Python?)
  • R中关闭另一个表[关闭](Removing one table from another in R [closed])
  • 枚举数字(Enumerating digits)
  • 我想从现有数组中获取新数组,其中key是旧数组的重复值,value是重复计数?(I want new array from existing array with key as repeated value from old array and value as repeated count?)
  • 如何在不创建实例的情况下调用类方法(How to call a class method without creating an instance)
  • wxHaskell中嵌入的图像(Embedded images in wxHaskell)
  • 蚂蚁战争任务如何运作?(How does the ant war task work?)
  • Windows Workflow 4中的人员活动支持(Human activity support in Windows Workflow 4)
  • 在Firebug的Net Panel中缺少'DomContentLoaded'和'加载'时间信息(Missing 'DomContentLoaded' and 'load' time information in Firebug's Net Panel)
  • 如何抓取页面以查看复选框/广播/文本输入并检测其原始值的更改?(How can I crawl the page for checkbox/radio/text inputs and detect changes to their original values?)
  • Document.ready不起作用(Document.ready won't work)
  • Java序列化问题(Java serialization problem)
  • Javascript:如何在页面刷新时处理令牌验证?(Javascript: How should I handle token verification on page refresh?)
  • 数据库安全:中间“to_be_deleted”列/表?(Database safety: Intermediary “to_be_deleted” column/table?)
  • 使用mayavi时如何删除scalar_cut_plane中的红框和白色箭头?(How to remove the red frame and white arrow in scalar_cut_plane when using mayavi?)
  • 如何延迟MainPage,所以它在加载数据后启动?(How to delay MainPage, so it starts after data is loaded?)
  • 按Enter键更改EditText(Press Enter to change EditText)
  • 使用libavcodec解码时可以裁剪帧大小吗?(Can the frame size be cropped during decoding using libavcodec?)
  • Performance_Python根据元组的3个元素中的2个获得2个元组列表的并集(Performance_Python get union of 2 lists of tuple according to 2 out of the 3 elements of the tuple)
  • 为什么法线会随相机旋转?(Why normals rotate with camera?)
  • 如何将Intent与ListView一起使用?(How do I use Intents with ListView?)
  • html_safe无法使用rails(html_safe not working with rails)
  • 录制没有单独的程序或库的opengl视频(record opengl video without separate program or library)
  • 滚动到特定视图(Scroll to particular view)