编译

2020-7-28 21:24
本文是正则表达式系列的一部分。*有关要可视化的更多正则表达式示例,请查看此正则表达式测试用例列表。 下面的C源代码是上面生成的任何代码示例所需的公共代码。只需将以下代码与上面动态生成的代码一起复制并粘贴到名为main.c&39;的文件中,即可生成执行您想要的正则表达式搜索的硬编码程序。确保在上面动态生成的代码之前传递......
2020-7-26 17:8
Langcraft是一个针对“我的世界”数据包的代码生成器。它目前可以毫无问题地运行相当多的位码文件。该项目有一个内置的命令解释器,用于调试,支持断点(ISH)和检查寄存器/内存值。所有生成的数据包都可以在不到5分钟的时间内在真实的Mincraft Java Edition 1.16+环境中运行。 将整个输出文件夹(......
2020-7-23 10:1
PermalLink GitHub是5000多万开发人员的家园,他们一起工作,共同托管和审查代码、管理项目和构建软件。 报名
2020-7-22 14:21
级别1火箭的最终上游依赖已经更新,允许在稳定上编译,所以塞尔吉奥-贝尼特斯/火箭的主分支现在可以在稳定上编译了! 级别1我很高兴看到这一点";Rocket是Rust的异步Web框架,关注可用性、安全性、可扩展性和速度。 级别2我刚刚给你的网站加了书签,看起来上面有很多很棒的内容。我对Reaction/Node很......
2020-7-22 2:14
这将在生成的目录中生成代码,然后针对语言、操作类型和编译器的每种组合,运行支持的基准测试。最后,一个显示基准结果的Markdown格式表被打印到标准输出。 GCC和克朗并没有为C++执行所有的语义检查(因为它太昂贵了)。这与执行所有这些任务的D&39;s和Rust';编译器形成了鲜明对比。 LONG ADD_L......
2020-7-19 10:50
我会试着告诉你这有多简单。第一部分很有理论性,所以要有耐心。 CUCU是玩具语言的玩具编译器。我希望它尽可能接近ANSI CA,这样每个有效的CUCU程序都可以用C编译器编译,没有任何错误。当然,整个ANSI C标准的支持非常困难,所以我选择了一个非常小的C语言子集。 Int cucu_strlen(char*s){......
2020-7-17 2:16
外面天气很好,让我们做个编译器吧。您不需要任何关于编译器如何工作的知识就可以跟上。我们将使用Python来实现我们自己的编程语言Teeny Tiny,它将编译成C代码。它将需要大约500行代码,并提供定制编译器所需的初始基础设施,并将其扩展为您自己的数十亿美元的生产就绪编译器。 本教程是一系列帖子,循序渐进地构建可工......
2020-7-14 2:27
Google群组允许您创建并参与在线论坛和基于电子邮件的群组,这些群组具有丰富的社区对话体验。
2020-7-14 1:17
2019年11月12日第17卷第5期编译器是将高级的、更容易编写的代码转化为高效的机器代码以供计算机执行的必备技术。他们在做这件事上的老练经常被忽视。您可能会花费大量时间仔细考虑算法和处理错误消息,但可能没有足够的时间来了解编译器能够做些什么。 本文介绍了一些编译器和代码生成概念,然后介绍了您的编译器正在为您完成的一......
2020-7-10 0:44
在ARM披露CPUSLS漏洞和LLVM编译器初始缓解后花了一个月的时间,但GNU编译器集合(GCC)现在也针对此直线推测漏洞进行了缓解。(注:Gnu Compiler Collection(Gnu Compiler Collection,GNU Compiler Collection)(GCC))现在也针对此直线推测......
2020-7-8 19:55
美国马萨诸塞州波士顿,第29届USENIX安全研讨会(USENIX Security 20)论文集实用符号执行的一个主要障碍是速度,特别是与模糊测试等接近本地速度的解决方案相比。我们提出了一种基于编译的符号执行方法,其性能比最先进的实现要好几个数量级。我们介绍了SymCC,这是一个基于LLVM的C和C++编译器,它将......
2020-7-7 5:42
这是系列文章中的最后一篇,也是最有趣的一篇。第1部分和第2部分重点介绍了Golang-Goroutines和几乎停顿的GC的两个关键特性。这篇帖子补充了所有缺失的部分。 但是,在如何实现所有这些功能方面,有更多的不同之处而不是相似之处。让我们跳到这些内容:)。 Go编译成本机二进制文件--也就是说,它的二进制文件“绑......
2020-7-6 21:19
这是关于WebAssembly的系列文章的第二部分,以及它的快速之处。如果您还没有阅读其他内容,我们建议从头开始。 JavaScript一开始速度很慢,但后来变得更快,这要归功于一种名为JIT的东西。但是JIT是如何运作的呢? 当您作为开发人员将JavaScript添加到页面时,您有一个目标和一个问题。 你说的是人类......
2020-7-6 5:13
这篇文章详细介绍了5+JIT和各种优化策略,并讨论了它们如何与不同的JIT协同工作。这篇博文中的信息是深度优先的,因此有许多重要的概念可以跳过。 有关JIT编译器的背景信息,请参阅JIT编译器深度介绍:JIT不是非常及时的。如果标题对你没有意义,那么它可能值得浏览一下。 我经常描述一种优化行为,并声称它可能存在于其他......
2020-7-6 3:2
如果您熟悉JIT的一般工作方式(如果您理解了标题所指的内容),我建议您略读这篇文章,或者直接阅读JIT编译器是如何实现和快速的:Julia、PyPy、LuaJIT、Graal等。 我的导师克里斯把我从“什么是JIT”带到了我现在所处的位置,他曾经告诉我,编译器只是以字节为单位输出的,根本不是低级的和可怕的。这实际上是......
2020-7-3 2:24
LFortran是建立在LLVM之上的现代开源(BSD许可)交互式Fortran编译器。它可以交互地执行用户代码,以便进行探索性工作(很像Python、MATLAB或Julia),还可以编译二进制代码,目标是在多核CPU和GPU等现代架构上运行用户代码。 GitLab的主存储库:https://gitlab.com/......
2020-7-1 10:42
想象一下:您有一个大型的多模块ClojureScript项目,并且您计划在生产中进行新的部署,您的项目使用的是CLJS编译器的高级优化模式,一切似乎都很顺利。在发布之前,您正在执行一些最后的E2E测试。然后,加载有故障的模块。砰!您会被打耳光,并出现类似如下的错误: 未捕获错误:没有协议方法IMultiFn.-Add......
2020-6-30 23:49
由于Lua5.4.0发布了,这让我真的很高兴,我决定写一篇小帖子来介绍编译到Lua的语言。 Moonscript已经存在了一段时间了(这也是我在最初的出版物中忘记将其添加到这篇文章中的原因之一),而且它很稳定,并且在业界得到了使用,它可能是目前最流行的Lua语言编译程序。我相信Itch.io的很大一部分是由moons......
2020-6-30 21:11
在本系列中,我们将探讨Rust在TiKV上下文中的编译时间,TiKV是TiDB数据库背后的键值存储。 最近,我们正在探索Rust的设计是如何阻碍快速编译的。在本系列的上一篇文章中,我们讨论了编译单元,为什么Rust如此之大,以及这对编译时间有何影响。 这一次,我们将用几个更多的主题来结束对Rust运行缓慢原因的讨论:......
2020-6-30 0:55
为了帮助支持我们的社区在新冠肺炎期间远程工作,我们将在2020年6月30日之前免费提供ACM在我们数字图书馆中发布的所有作品。了解更多。 我们使用饼干,以确保我们给你最好的经验,在我们的网站。 您的浏览器似乎不支持它们,这会影响网站功能。
2020-6-26 5:18
注意:这是一篇来自Sixten编程语言文档的老帖子,我对它进行了润色和充实。在写完之后,我发现了Salsa,这是一个与我的Rock库有着非常相似目标的Rust库,它也绝对值得一看! 编译器不再仅仅是获取一堆源文件并产生汇编代码的黑匣子。我们期望他们: 是增量的,这意味着如果我们在做了一些更改之后重新编译一个项目,我们......
2020-6-25 5:12
永久链接浏览文件此提交将删除`const char*wuff_base__note__i_o_redirect`全局变量的定义。这个变量没有在任何地方使用(在前一次COMMIT删除了对它的引用之后)。删除这一行代码(如果算上声明,就是两行,而不仅仅是定义)可能会对看似无关的性能微基准产生巨大影响。一些数字变得更好(例......
2020-6-24 2:46
小的!。您可以在任何地方编译和执行C代码,例如在救援盘上(x86TCC可执行文件大约100KB,包括C预处理器、C编译器、汇编器和链接器)。 快地!。TCC生成x86代码。无字节码开销。编译、汇编、链接比GCC快好几倍。 无限量!任何C动态库都可以直接使用。TCC正朝着完全符合ISOC99的方向发展。TCC当然可以自......
2020-6-23 12:19
在本系列中,我们将探讨Rust在TiKV上下文中的编译时间,TiKV是TiDB数据库背后的键值存储。 最近,我们正在探索铁锈的设计是如何阻碍快速编译的。在本系列的上一篇文章中,我们讨论了实现泛型所需的编译时困难的权衡。 编译单元是语言编译器运行的基本工作单元。在C和C++中,编译单元是源文件。在Java中,它是一个源......
2020-6-20 17:26
编译器只是一个翻译其他程序的程序。传统编译器将源代码转换为您的计算机能够理解的可执行机器码。(一些编译器将源代码翻译成另一种编程语言。这些编译器称为源到源翻译器或转换程序。)。LLVM是一个广泛使用的编译器项目,由许多模块化的编译器工具组成。 前端将源代码转换为中间表示(IR)*。clang是LLVM用于C语言家族的......
2020-6-19 3:23
上周,我完成了一个名为Compiler Compiler的新流的三部分试验,它考察了JavaScript规范ECMA-262是如何在SpiderMonkey中实现的。 JavaScript…。是一种编程语言。有些人喜欢,有些人不喜欢。JavaScript可能有点乱,但很容易上手。它是教会我如何编程的编程语言,并向我介......
2020-6-19 2:38
在C++20中,std::Sort与其他标准算法一起变成了constexpr。这使得以下代码成为可能。 第14行的sorted_arr在编译时被初始化为{1,2,3,4,5},并且main返回1。如您所见,机器代码中没有排序算法和逻辑的痕迹。此外,如果您打开优化(-O3),整个代码就会变成一条指令,从而证明所有排序都......
2020-6-16 23:36
这可能是一个有点不受欢迎的观点,所以点击诱饵标题应该是合适的!从1.6版开始,我已经学习和使用Rust将近四年半了。对于熟悉语言、工具和生态系统的一些问题来说,这是一段很长的时间。但这是一个略有不同的故事,这是对编译器速度慢的常见批评的异议。在这次讨论中,我将争辩说,这些说法充其量只是误导。有大量证据表明,与其他语言......
2020-6-16 9:38
在本系列中,我们将探讨Rust在TiKV上下文中的编译时间,TiKV是TiDB数据库背后的键值存储。 在本系列的上一篇文章中,我们介绍了Rust的早期开发历史,以及它如何导致了一系列决策,这些决策导致了一种编译速度很慢的高性能语言。在接下来的几个月里,我们将更详细地描述Rust中一些使编译时间变慢的设计。 在这一系列......
2020-6-13 19:55
《寻找原始的Fortran编译器》刊载于2017年4-6月的IEEE计算史年鉴。如果链接不起作用,你可以在这里阅读我最终提交的版本。 我写这篇文章是为了记录我在2003年末开始寻找IBM704的原始FORTRAN编译器的源代码的过程。很多搜索都记录在这个灰尘甲板的博客上,我在2004年7月创建了这个博客,作为一种广告......