搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小小林熬夜学编程
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【Vue2 + webrtc-steamer】rtsp流在Web端实时播放_webrtc-streamer 稳定么
2
2022年江西省职业院校技能大赛软件测试技能竞赛方案(高职组)_江西 技工院校 跨校参加 三类竞赛
3
为什么说密钥管理是数据安全体系的核心?_网络安全的核心是密钥安全
4
【Qt踩坑】Qt项目嵌入Web踩坑记录--加载QtWebEngine模块的程序会出现崩溃
5
力扣:1844. 将所有数字用字符替换_python1844. 将所有数字用字符替换
6
MybatisPlus—自定义SQL_mybatisplus自定义sql
7
用于WINDOWS的HACKRF ONE扫频分析仪_hackrf_sweep
8
Livox-Mid-360 固态激光雷达ROS格式数据分析_livox的multi_topic
9
调用TUXEDO服务概览
10
本地安装rabbitmq_rabbitmq本地安装
当前位置:
article
> 正文
编译原理学习导论
作者:小小林熬夜学编程 | 2024-04-21 17:33:24
赞
踩
编译原理学习导论
大学课程为什么要开设编译原理呢?这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。在20世纪50年代,编译器的编写一直被认为是十分困难的事情,第一Fortran的编译器据说花了18年的时间才完成。在人们尝试编写编译器的同时,诞生了许多跟编译相关的理论和技术,而这些理论和技术比一个实际的编译器本身价值更大。就犹如数学家们在解决著名的哥德巴赫猜想一样,虽然没有最终解决问题,但是其间诞生不少名著的相关数论。
推荐参考书
虽然编译理论发展到今天,已经有了比较成熟的部分,但是作为一个大学生来说,要自己写出一个像Turboc C,Java那样的编译器来说还是太难了。不仅写编译器困难,学习编译原理这门课程也比较困难。
正是因为编译原理学习相对困难,那么就要求有好的教师和好的教材。教师方面不是我们能自己更改的,而在教材方面我们却可以按自己的意愿来阅读。我下面推荐几本好的编译原理的教材。我推荐的书籍都是国外的经典教材,因为在国内的教材中,确实还没发现什么让人满意的。
第一本书的原名叫《Compilers Principles,Techniques,and Tools》,另外一个响亮的名字就是龙书。原因是这本书的封面上有条红色的龙,也因为獗臼樵诒嘁朐砘×煊蛉肥堤忻?所以很多国外的学者都直接取名为龙书。最近机械工业出版社已经出版了此书的中文版,名字就叫《编译原理》。该书出的比较早,大概是在85或86年编写完成的,作者之一还是著名的贝尔实验室的科学家。里面讲解的核心编译原理至今都没有变过,所以一直到今天,它的价值都非凡。这本书最大的特点就是一开始就通过一个实际的小例子,把编译原理的大致内容罗列出来,让很多编译原理的初学者很快心里有了个底,也知道为什么会有这些理论,怎么运用这些理论。而这一点是我感觉国内的教材缺乏的东西,所以国内的教材都不是写给愿意自学的读者,总之让人看了半天,却不知道里面的东西有什么用。
第二本书的原名叫《Modern Compiler Design》,中文名字叫做《现代编译程序设计》。该书由人民邮电出版社所出。此书比较关注的是编译原理的实践,书中给出了不少的实际程序代码,还有很多实际的编译技术问题等等。此书另外一个特点就是其“现代”而字。在传统的编译原理教材中,你是不可能看到如同Java中的“垃圾回收”等算法的。因为Java这样的解释执行语言是在近几年才流行起来的东西。如果你想深入学习编译原理的
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/464269
推荐阅读
article
Linux
命令学习—
FTP
服务器
...
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处 理文件或者压缩文件(尽管字处理...
赞
踩
article
毕业设计
-基于 MAT
LAB
的
神经网络
在
股市
预测
中的应用_bp
神经网络
建模股票...
毕业设计
-基于 MAT
LAB
的
神经网络
在
股市
预测
中的应用
股市
变化叵测,掌握其变化规律并
预测
其走势,一直是投资者梦寐以...
赞
踩
article
多
维时序 |
MATLAB
实现
GTO
-
CNN
-
BiLSTM
人工大猩猩部队优化卷积双向
长短期
记忆神经网...
MATLAB
实现
GTO
-
CNN
-
BiLSTM
人工大猩猩部队优化卷积双向
长短期
记忆
神经网络
多
变量
多
步时间序列预测_gto-...
赞
踩
article
超级好用
VMWare14
安装
Mac
OS10.12系统(图解)_
vmware
mac
os
10...
安装
环境: windows10
VMWare14
一、准备工作【1】资源下载VMware Workstation Pro ...
赞
踩
article
Unreal
Engine
4 书籍翻译
Building
an
RPG
with
Unreal
(...
Unreal
Engine
4 书籍翻译
Building
an
RPG
with
Unreal
三第3章 探索和战斗 ...
赞
踩
article
40
岁
的
程序员
失业
了
,如何自救?_
40
岁
c
程序员
失业
...
同学、前同事、一些朋友,大部分都过
了
35
岁
了
。1、前华为同事,之前部门业务没怎么增长,领导还是早些年混上去那几个,有两三...
赞
踩
article
python
使用
flask
框架从
数据
库读取
数据
之二(
flask
+
mysql
+
flask
_sqlalc...
前边写了一篇如何使用
flask
框架读取
数据
且进行展示后,重新整理了下sqlachemy的增删改查操作,该篇文章整理了所有...
赞
踩
article
redis
的
订阅与
发布
功能...
redis
的
订阅与
发布
功能
redis
的
订阅与
发布
功能 1:yml...
赞
踩
article
【
Python
】PC听书工具,微软
tts
朗读
_
edge
tts
python
...
pc听书工具,微软
tts
朗读
_
edge
tts
python
edge
tts
python
简介: ...
赞
踩
article
2023
华为
机试
真题...
0,3]和[1,3]的公共区间为[1,3],[0,3]和[3,5]的公共区间为[3,3],[0,3]和[3,6]的公共区...
赞
踩
article
c 的网络I/O库总结(
libev
ent
,
libuv
,
libev
,
libeio
)...
linux 的网络I/O库总结(
libev
ent
,
libuv
,
libev
,
libeio
)_
libev
libev
...
赞
踩
article
人工智能
大
模型
专题
报告
:方兴未艾,并驱争先_
百度
ai
大
模型
研究
报告
...
报告
缘起:AI 趋势明确,
大
模型
为关键环节全球 AI 产业发展趋势明确,波动中前行。自 1956 年约翰·麦卡锡首次提出...
赞
踩
article
基于
深度
学习
的
老照片
修复
系统_
深度
学习
图像
修复
pytorch
...
这些
老照片
记录了宝贵的回忆和历史,但由于质量问题,它们的可视化效果受到了限制。
修复
后的照片将拥有更鲜艳的颜色、更清晰的细...
赞
踩
article
程序员
转型
概述...
程序员
转型
概述-----写给所有已经入行和打算入行的
程序员
。前面已经说过由于
程序员
当下所处行业的特性(可以参阅前面的文章...
赞
踩
article
AutoML
系列 | 02-
自动化
机器
学习
系统
设计
_
automl
设计
架构...
文章目录一、需求背景二、解决思路三、架构
设计
1.系统整体架构
设计
2.
自动化
模型构建的核心流程四、
AutoML
系统的两种模...
赞
踩
article
Docker
与
PostgreSQL
容器...
1.背景介绍1. 背景介绍
Docker
是一种开源的应用容器引擎,它使用标准化的包装格式(容器)来分离软件应用的依赖性和运...
赞
踩
article
【
C语言
】
数组
...
一维
数组
名和二维
数组
名,
数组
与指针的关系,
数组
指针的定义与使用,二维
数组
的排序,选择排序算法。下标引用*(arr【
C语言
...
赞
踩
article
unity
+
Loom
实现
多线程
(
Thread
)和主线程(Main
Thread
)交互_
unity
lo...
最近在做资源更新时,需要显示现在的进度调。我在Unity中开启了一个线程来做下载任务,然后实时刷新下载进度。然后Unit...
赞
踩
article
【
Docker
】之安装
PgSQL
_
docker
安装
pgsql
...
1、下载 Postgres 镜像下载最新版本的 Postgres 镜像(默认是 latest 版本):
docker
pu...
赞
踩
article
编写
一个
简单
的
通讯录
python
-
python
写
一个
通讯录
...
闲着没事,用
python
写
一个
模拟
通讯录
,要求要实现常用
的
通讯录
的
功能,基本流程如下?接下来就按照这个流程实现各个模块
的
...
赞
踩
相关标签
服务器
linux
学习
安全
运维
网络
课程设计
人工智能
开发语言
神经网络
GTO-CNN-BiLSTM
CNN-BiLSTM
双向长短期记忆神经网络
多变量多步时间序列预测
vm破解OS
程序员
失业
Java
C / C++
Python
40岁
python
redis
spring boot