0909 45作业one
1.编译原理学什么?
答: 初遇编译原理,我知道编译原理是计算机专业设置的一门重要的专业课程,主要是介绍编译程序构造的一般原理和基本方法。其内容大概包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成等等。
2.为什么学编译原理?
答:我觉得呢,编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。学习编译原理,你将得以学习大量优美的算法,并得以欣赏理论和实践在编译器开发中如何美妙地结合在一起。再者,编译原理是计算机科学与技术中一个非常成熟的分支,非常完美地将原理与技术结合了起来,对于理解计算机的本质非常有帮助 。
3.怎么学编译原理
答:编译原理很难学,必须自己动手编,从词法分析开始,一步步来。母庸置疑,这门课程想要自学是非常难的,所以我们必须要跟着老师讲课的思路走,搞清楚理论的来龙去脉,完成相应的作业。想学好编译原理,只听懂理论知识是完全不够的,我们必须要自己多花时间多动手编程,也可以读读相关方面的书:龙虎鍄,把课后的题目会做的都做一遍。再者就是,可以自己写一个toy compiler,编译一些简单的代码,尝试理解各部分之间如何整合。看LLVM的代码,试着在上面加一些东西。这样你就大概入门了。
4.思考:在没有学习本书理论之前,如果让你写一个编译器,你是什么思路?
答:设计一个简单的解释程序,将某种高级程序设计语言L用C语言进行解释并执行,即将L语言中的语句“翻译”成为C语言语句,然后在C语言运行环境中执行得到结果。 L语言是自己设定的。关键是用c语言写编译程序的方法。当然,这个问题的关键不在于C的编译怎么做,二在于L语言的内容,L语言应该有一个语句规则,既然有了规则那么就可以对应的用符号代换来执行了。
0909 45作业one的更多相关文章
- oschina程序开发
程序开发 102脚本编程语言 36地图相关 7Epub电子图书工具 109UI组件库 16代码生成工具 25SVG开发包 17推荐引擎 3指纹识别 23拼音转换工具包 24蓝牙开发 295GUI开发框 ...
- Matlab随笔之画图函数总结
原文:Matlab随笔之画图函数总结 MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATL ...
- 作业45//Calculator::3.0
计算器 github 我的天我到底要写什么 一,2.0及2.6的改动 做了计算部分 加入了判断输入是否合法 合法的定义是算式符合`数字+运算符+数字+运算符+数字`的格式 其中`"-&quo ...
- 耿丹CS16-2班第五次作业汇总
Deadline: 2016-10-26 23:59 作业内容 实验4-1 求1到20的阶乘的和,其中求阶乘用函数完成. 实验4-2 写一个判素数的函数,在主函数输入一个整数,输出其是否是素数的信息. ...
- SQL SERVER 中如何用脚本管理作业
在SQL SERVER中用脚本管理作业,在绝大部分场景下,脚本都比UI界面管理作业要高效.简洁.打个简单的比方,如果你要查看作业的运行时长,如果用UI界面查看,100个作业,你就得在历史记录里面至少查 ...
- C语言程序设计第6堂作业
一. 本次课主要内容: 通过几个实例来进一步掌握循环结构的应用. 二. 实验内容:(70分) 1. 穷举算法(古典算术问题-搬砖头)某地需要搬运砖块,已知 ...
- Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 2)及总结
Exercise 1:Linear Regression---实现一个线性回归 关于如何实现一个线性回归,请参考:http://www.cnblogs.com/hapjin/p/6079012.htm ...
- 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”
这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...
- 软件工程(QLGY2015)第三次作业点评(含成绩)
相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 团队信息 本页点评团队1-22,其他组见:http://www.cnblogs.com/xiaozhi_5638/p/4490764.h ...
随机推荐
- LINUX下动态库及版本号控制
针对同一动态组件的不同版本链接和加载. 一.概念 DLL HELL字面意思是DLL"灾难",是由于com组件(动态库)升级引起的程序不能运行的情况 ...
- ssh配置文件说明
配置“/etc/ssh/ssh_config”文件 “/etc/ssh/ssh_config” 文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式.这个文件的每 ...
- VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称 <转>
昨天写了一个很小的winform程序,其中引用了自己写的两个dll文件. 本来认为轻松搞定,结果一编译居然提示:未能找到类型或命名空间名称..... 于是删掉两个dll重新引用,再编译结果依旧!很是郁 ...
- android开发之单选按钮
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...
- 【T电商 1】Nginx服务器搭建
在项目中,首先是需要Nginx服务器作为一个图片服务器来使用.那么,久涉及到服务器的搭建.这次服务器的搭建,主要是在三个环境上进行了学习:CentOS6.2,CentOS7,和Ubuntu16.那么本 ...
- oracle client与ODAC的字符集
1.pl/sql developer 9里检查客户端字符集与服务端是否一致 首选项,选项,检查客户机与服务器字符集是否匹配 2.Windows环境变量的修改即时生效 3.ODAC12安装后字符集的变化 ...
- 【转】详解Oracle的dual表
网址:http://www.adp-gmbh.ch/ora/misc/dual.html dual is a table which is created by oracle along with t ...
- ThinkPHP 学习记录
index.php //入口文件 define('APP_DEBUG',True); //开启调试模式 define('APP_PATH','./Application/'); //定义应用目录 re ...
- 你还没成为Delphi QC的成员吗?(转红鱼儿)
Delphi很早就建立了quality.embarcadero.com,简称为QC,质量控制中心,用来接收用户反馈的bug,新功能建议等,是开发者与delphi官方直接交流的平台.无论是否为正版用户, ...
- POJ(3468)
A Simple Problem with Integers http://poj.org/problem?id=3468 #include <stdio.h> struct node { ...