zoukankan      html  css  js  c++  java
  • 0909对编译原理的理解

    1“编译原理”是大学计算机类专业的一门主干课程。设置本课程的目的,在于系统的向学生讲述编译系统的结构、工程流程以及编译程序各组成部分的设计原理和实现技术,使学生通过本课程的学习,既掌握编译理论和方法方面的基本知识,而且也获得设计、实现、分析和移植编译程序方面的初步能力。全书共10章,内容包括语言及文法的基本知识、词法分析语法分析语义分析及中间代码生成、符号表组织、运行时的存储组织与分配、代码优化及目标代码生成等。

    2、编译原理”这门课是一门真正与代码做斗争的课程,对于一个有至于追求技术的人是不容错过的课程,而且编译原理可以说是一个计算机科学的缩影编译原理学过之后的益处包括:可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的;可以更加客观的比较不同语言的差异更不容易被某个特定语言的宣扬者忽悠学习新的语言是效率也会更高其实从语言a转换到语言b是一个通用的需求,学好编译原理处理此类需求时会更加游刃有余

    3、学习编译原理的一个办法就是安静下来,耐耐心心的读一本经典的编译原理教材,然后做完每一道习题,随后再自己编写一个玩具编译器,可以借助LLVM的力量轻易达到这一点。对于普通程序员,编译原理这门课主要掌握几点就够用了:词法分析方面,掌握正则表达式,了解dfa/nfaParsing 方面,能读懂BNF,知道AST,会写简单的递归下降parser,会用antlr之类的parser generator;优化方面,知道现代编译器的优化能力有多强,知道如何配合编译器写出高效易读的代码,避免试图outsmart编译器;会实现简单的虚拟机(stack-based,不带GC),并把四则运算表达式翻译为虚拟机指令

    4、编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)

  • 相关阅读:
    spring-boot-maven-plugin not found的解决方案
    springboot项目idea代码报红,maven clean, maven reimport都不起作用
    ubuntu升级python版本(3.5 -> 3.6)
    安卓时间戳转成时间存在误差
    litepal创建数据库表失败
    安卓实现标题和按钮在一行,按钮靠最右边布局
    idea2019设置智能提示忽略大小写
    PowerDesigner连接MySQL逆向生成PDM
    javaweb开发页面数字过长显示科学计数法的问题
    react native cannot read property 'navigate' of undefined
  • 原文地址:https://www.cnblogs.com/88mei/p/4799119.html
Copyright © 2011-2022 走看看