• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 编译器开发系列--Ocelot语言7.中间代码,编译器--ocelot

编译器开发系列--Ocelot语言7.中间代码,编译器--ocelot

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了ocelot,ocelot是什么意思,michel ocelot,ocelot life,我的世界ocelot等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

编译器开发系列--Ocelot语言7.中间代码,编译器--ocelot


Ocelot的中间代码是仿照国外编译器相关图书Modern Compiler Implementation 中所使用的名为Tree 的中间代码设计的。顾名思义,Tree 是一种树形结构,其特征是简单,而且方便转换为机器语言。

例如以下代码:

int main(int argc, char** argv)
{
	return ++argc;
}

会被转换成如下的中间代码:

<<IR>> (G:\编译原理\自制编译器\源码\test\hello_ir.cb:1)
variables:
functions:
    <<DefinedFunction>> (G:\编译原理\自制编译器\源码\test\hello_ir.cb:1)
    name: main
    isPrivate: false
    type: int(int, char**)
    body:
        <<Assign>> (G:\编译原理\自制编译器\源码\test\hello_ir.cb:3)
        lhs:
            <<Addr>>
            type: INT32
            entity: argc
        rhs:
            <<Bin>>
            type: INT32
            op: ADD
            left:
                <<Var>>
                type: INT32
                entity: argc
            right:
                <<Int>>
                type: INT32
                value: 1
        <<Return>> (G:\编译原理\自制编译器\源码\test\hello_ir.cb:3)
        expr:
            <<Var>>
            type: INT32
            entity: argc

组成中间代码的类如表11.1 所示。

所有语句的节点都继承自Stmt 类,表达式的节点继承自Expr 类。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 编译器开发系列--Ocelot语言6.静态类型检查,编译器--ocelot
  • 编译器开发系列--Ocelot语言7.中间代码,编译器--ocelot
  • 编译器开发系列--Ocelot语言5.表达式的有效性检查,--ocelot有效性
  • 编译器开发系列--Ocelot语言2.变量引用的消解,编译器--ocelot
  • 编译器开发系列--Ocelot语言3.类型名称的消解,编译器--ocelot

相关文章

  • 2017-05-26cordova开发自定义插件
  • 2017-05-26Android常用命令行-adb,android-adb
  • 2017-05-26解决VS2017不连接visual studio emulator for android,vs2017android
  • 2017-05-26仿Android印象笔记底部导航栏
  • 2017-05-26Android API Guides---Animation Resources
  • 2017-05-26android Handler介绍,androidhandler介绍
  • 2017-05-2653.Android Canvas Paint相关内容介绍
  • 2017-05-26硅谷社交7--添加联系人--接收添加好友邀请,硅谷7--
  • 2017-05-26Android APP漏洞挖掘
  • 2017-05-26ActionBar设置自定义setCustomView()留有空白的问题,setcustomview空白

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 【Android】由浅到深理解AIDL
    • 移动端web头部header通用写法
    • 内核内存分配常用函数使用
    • android历史
    • go 常用命令扼要说明
    • Android Studio插件,androidstudio插件
    • Unity加入Android广告小结,unityandroid小结
    • Android开发:程序目录结构详解
    • Android 在Activity页面中如何实现Fragment数据的缓加载
    • 认清Android Studio下的Gradle是什么

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有