关于编译原理

设有语言L={a∣a∈{0,1}+,且不以0开头,但以00结尾}.(1)试写出描述的L正规表达式;(2)构造识别L的DFA(要求给出详细过程,并画出构造过程中的NDFA、... 设有语言L={a∣a∈ {0,1}+,且不以0开头,但以00结尾}.(1)试写出描述的L正规表达式;(2)构造识别L的DFA(要求给出详细过程,并画出构造过程中的NDFA、DFA的状态转换图,以及DFA的形式化描述)。 展开
 我来答
一灯
2011-06-24 · TA获得超过1167个赞
知道小有建树答主
回答量:2614
采纳率:0%
帮助的人:1288万
展开全部
1.当然是机器语言了,如果是汇编指令,那还得编译一次!能运行的程序都是机器语言,只有机器语言才能控制CPU,NET或Java这些中间语言,程序在运行时会被CLR或JVM快速编译成机器语言,因此这些程序速度上有损失。

高级语言源代码(文本)-通过编译器(compiler)-程序(二进制机器语言)
汇编代码(文本)-通过汇编器(assembler)-程序(二进制语言)

看到这里,你可能会想那汇编语言到底有什么用呢,编译器完全能代替汇编啊?
(1).编译器是通过高级语言(c,c++)转到机器语言的。转换过的机器语言受限与高级语言,效率和功能上都有限制。比如c不等过分操作内存。但通过汇编器转化过来的机器语言,效率高,且用汇编语言,直接和CPU对话!
(2).汇编可以反汇编(逆向编译),而这里高级语言没有发言权,就是:
程序(二进制机器语言)-通过反汇编器(compiler)-可转化为汇编代码(文本)
但永远不能转化为高级语言的源代码,。
以上两点汇编存在的重要性。

2。当然是说移植源代码。windows用x86机器语言,苹果用powerPC机器语言,windows程序当然不能运行在苹果机上,因为程序其实就是一串机器语言!但windows上有c的编译器(vc++),苹果机上也有c编译器(gcc),因此同一个c的源代码,当然就可以通过不同平台的同一种编译器实现平台移植。

3.当然是NASM,我看的所有书都首先说NASM,他是开源的,就像Linux一样,很受欢迎,还有MASN是微软的,borland的也有汇编器,不过都不常见了。

4.这跟CPU有关,一般32位x86兼容的cpu有许多寄存器,多数是32位的,也有16位的。比如CS,ES,DS这些segment寄存器一直是16位的。

5.优势太多了,这和32位和16位存在的优势一样,16位电脑最大内存1MB,寄存器都是16位的。32位,最大内存可以有4GB,整整是16位的4096倍啊!16位多渺小啊,同理64位基本上也可以蔑视32位,64内存最大内存用TB来衡量,寄存器多数是64位!地址总线也是64位。64对32位没有什么优势劣势可言,64位完全就是32位的下一代。
nengteng04
2011-06-24 · TA获得超过197个赞
知道答主
回答量:610
采纳率:0%
帮助的人:0
展开全部
问题补充:编译原理的此法分析器设计有一道题中的结尾要求中这样写到:……分析器的输入为由上述几类单词构成的程序(c语言的一段程序),输出为该段程序的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式