Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将从ceylon.ast获得的编译单元提供给Ceylon编译器?

如何将从ceylon.ast获得的编译单元提供给Ceylon编译器?
EN

Stack Overflow用户
提问于 2016-07-21 18:06:50
回答 1查看 47关注 0票数 2

ceylon/ceylon.ast项目中找到的以下示例展示了如何以编程方式构造一些AST,并通过Ceylon类型检查器(com.redhat.ceylon.compiler.typechecker.TypeChecker)对其进行类型检查:

https://github.com/ceylon/ceylon.ast/blob/master/source/test/ceylon/ast/samples/turingMachine/powerOfTwo.ceylon

考虑到编译单元通常是作为文件而不是类型语法树(来自ceylon.ast项目)提供给类型检查器,那么建议使用类型化语法树调用什么方法来编译类型化语法树?

这个问题与这个问题相关:The Ceylon Typechecker: How to obtain the typed syntax tree?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-30 08:16:46

生成一个AST,然后从实际项目的上下文中对其进行编译似乎不是一个可行的选择。编译器需要比AST单独提供的信息更多的信息,并且为编译器提供默认或虚假的信息(例如文件名)仍然是一项复杂的任务。

另一方面,在实际项目的上下文中使用实际编译单元的AST作为一种宏系统是没有意义的,因为ceylon程序可能会有副作用,转换必须考虑到这一点。此外,转换规则应该是终止的和汇合的,并且应该以使维护它们尽可能容易的形式来表达,而不是过程转换器。Ceylon的switch表达式不是适合它的工具。最坏的情况是一个过程化的Ast转换器,它会转换过程化的AST转换器。

一个例外是声明式树状结构在锡兰的转换。这正是我在问题中所考虑的:读入数据(不一定使用ceylon语法),并使它们可用于计算或可选的编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38511385

复制
相关文章
gcc编译器如何使用_gcc编译器用什么语言写的
预处理(preprocessing):对 .c 源文件进行预处理,生成 .i 文件。 编译(compilation):对 .i 文件进行编译,生成 .s 汇编文件。 汇编(assembly):对 .s 文件进行汇编,生成 .o 目标文件。 链接(linking):对 .o 文件进行链接,生成可执行文件。
全栈程序员站长
2022/09/20
1.7K0
gcc编译器如何使用_gcc编译器用什么语言写的
java官方编译器_JAVA 编译器
说白了,javac就是一个编译器;编译器就是把一种语言规矩转换成另一种语言规矩,也就是将对人友好的语言转换成对机器友好的语言。因此,javac是把Java源代码编译成Java字节码,即JVM可以识别的二进制;表面上就是将.java文件转成.class文件。
全栈程序员站长
2022/09/14
2.3K0
如何查看GCC编译器版本
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153313.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/13
1.4K0
编译器的结构|编译原理
今天的内容是冠以编译器的结构。(翻译内容可能不太准确,谅解,凑合看吧)
仇诺伊
2020/04/24
1.1K0
编译器的结构|编译原理
手机版java编译器_Java编译器[通俗易懂]
这是一款专为学习Java的学员们打造的一款非常优质的程序验证软件,让用户能够非常快速的复制自己的程序到APP中,进行检验,能够非常快速的去验证程序的内容,能够非常及时的进行纠错,让你的代码能够及时的得到解决,用户可以随时在这里打开使用,保证自己的编辑的代码能够更加的完美,让你可以更好的精心纠错,对于初学者来说是一款非常棒的软件,让自己能够学的更好,经验能够更加的丰富。
全栈程序员站长
2022/09/14
4K0
dotnet 编译 Rolsyn 编译器
这是一个套娃,在编译 Rolsyn 编译器之前需要有 Rolsyn 编译器,用 Rolsyn 编译器来编译 Rolsyn 编译器。本文来告诉大家如何构建 Rolsyn 编译器,步骤特别少,很简单
林德熙
2020/12/02
8900
java实现编译器_实现一个简单的编译器
简单的说 编译器 就是语言翻译器,它一般将高级语言翻译成更低级的语言,如 GCC 可将 C/C++ 语言翻译成可执行机器语言,Java 编译器可以将 Java 源代码翻译成 Java 虚拟机可以执行的字节码。
全栈程序员站长
2022/09/08
2.7K0
java实现编译器_实现一个简单的编译器
pycharm如何编译程序_xc8编译器
这是 PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download/#section=windows
全栈程序员站长
2022/09/27
8730
pycharm如何编译程序_xc8编译器
llvm编译器编译小结
传统编译器工作原理是三段式的可以分为: 前端(Frontend) 优化器(Optimizer) 后端(Backend)
tea9
2022/07/16
8520
【C 语言】Windows 下使用 gcc 编译器 ( 常用的编译器 | Qt 中的 gcc 编译器 | 独立安装 MinGW )
在之前的 【Qt】Qt 开发环境安装 ( Qt 版本 5.14.2 | Qt 下载 | Qt 安装 ) 博客中 , 安装 QT 开发环境时 , 涉及到了 MSVC 和 MinGW 两个编译器 , 因此可以在 Qt 的安装目录中找到 MinGW 下的 GCC 编译器 ;
韩曙亮
2023/03/29
3.3K0
【C 语言】Windows 下使用 gcc 编译器 ( 常用的编译器 | Qt 中的 gcc 编译器 | 独立安装 MinGW )
C++系列:编译器是如何工作的
源代码→ 预处理器→ 编译器→ 汇编程序→ 目标代码→ 链接器→ 可执行文件,最后打包好的文件就可以给电脑去判读运行了。
小Bob来啦
2021/04/14
1.2K0
编译器入门
编译器(compiler)就是一个翻译其他程序的程序而已。传统的编译器将源代码翻译为计算机能够理解的可执行机器代码(有一些编译器将源代码翻译为另一种编程语言。这些编译器叫做从源码到源码的翻译器,source-to-source translators or transpilers)。LLVM 是一个广泛使用的编译器项目,它包含了许多模块化的编译器工具。传统编译器涉及包含了三个部分:
用户1558438
2018/08/23
1.8K0
编译器构造
编译器构造 一、 编译器简介 前面谈到静态链接器构造的基本流程,最后提到所构造的链接器若要能正常工作的前提是需要构造一个能生成符合链接器输入文件格式的编译器,本文构造一个符合这种具体格式要求编译器。但
Florian
2018/02/05
2.1K0
编译器构造
<Solidity学习系列四>使用编译器
Solidity存储库的一个构建目标是solc,solidity命令行编译器。 使用solc --help为您提供所有选项的解释。 编译器可以生成各种输出,范围从简单的二进制文件和汇编到抽象语法树(解析树),以估计gas使用情况。 如果您只想编译单个文件,则将其作为solc --bin sourceFile.sol运行,并打印二进制文件。 在部署合同之前,在编译时使用solc --optimize --bin sourceFile.sol来激活优化器。 如果你想获得solc的一些更高级的输出变体,最好告诉它使用solc -o outputDirectory --bin --ast --asm sourceFile.sol输出所有东西来分离文件。
Charlie_W
2018/10/19
1.4K0
gcc编译器
  上面2个文档:sequence.c、sequence.h 可以做出库的形式,让其他的文件调用。
墨文
2020/02/28
2.1K0
gcc编译器
编译器入门
最近栏主在研究ios的llvm层优化的时候发现很多的知识盲区,便一头埋进编译器的世界。把这几周所学分享给大家
Wilbur-L
2020/12/27
8660
编译器入门
编译器初识
汇编语言对应cpu指令集(二进制机械码),兼容性不好,不能跨平台,arm的汇编和x86汇编差别很大 处理器指令集:https://blog.csdn.net/antony1776/article/details/83743856
sofu456
2020/07/30
6660
GCC 编译器的使用
视频观看地址:https://www.100ask.net/detail/p_5f338ae3e4b075dc42ad44a1/8
韦东山
2020/10/28
3.9K1
GCC 编译器的使用
Rust的在线编译器
在线编译器方便,省去了本地编译器的安装配置环节,开箱即用。下面介绍几个Rust的在线编译器。 1 Rust playground https://play.rust-lang.org/ 这是官方维护的站点。操作简单,对于入门来说,已经够用了。 ▲Rust playground的界面 2 Rust Explorer https://www.rustexplorer.com/b 相对于Rust playground,这个站点可以引入第三方包,如图所示 ▲开头引入第三方包 ▲右侧的终端模拟器输出信息 3
fem178
2022/09/01
4.2K0
Rust的在线编译器
编译器如何实现lambda表达式?
lambda表达式在C++11中引入,用lambda表达式表示匿名函数非常方便,语法很简单,而且可以使代码更紧凑,更易于阅读。
fensnote
2021/07/09
6990

相似问题

Ceylon编译器和VM

20

如何使用ceylon命令行工具构建ceylon?

17

GWT编译器-编译单元和接口

16

如何获得Microsoft帮助2编译器?

13

min编译器如何获得类型错误?

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文