⑴ 在程序设计中编辑器与编译器分别是什么意思啊谢谢
编辑器,是指对文本进行编辑的软件,用来写程序的。记事本,WORD(需保存为纯文本),都可算是编辑器。现在大多数编程工具也都自带有编辑器。
编译器,是一种翻译软件。它将用一种语言编写的程序,翻译成另一种语言的程序,而保持功能不变。一般编译器多数是将高级语言翻译成低级语言。
⑵ 用C++语言对下述文法和单词表定义的语言设计编制一个编译器。(1)单词符号及种别表
系统与网络安全--主要是试用电脑方面的,和编程语言/数学的联系不大
计算机图形学--主要是一些图形显像的原理和算法,和编程靠点边,但是有点复杂,这个和楼主的专业有一点点联系吧,不过图形学里面的编程似乎其他地方都用不到
密码学--基本上是纯数学了,讲密码的加密和解密,感觉不深学的话很简单,学了不搞研究的话基本没有用
如果楼主想好好学学编程的话,不如直接去把C看个透彻,了解一下C++,其他都是一通百通的
要是非要在这三个课程里面选一个的话,我建议楼主选计算机图形学。<
学习编程,从何入手?
如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!
方案一 Basic语言 & Visual Basic
优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。
缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。
综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。
方案二 Pascal语言 & Delphi
优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。
缺点
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。
综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。
方案三 C语言 & Visual C++
优点
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软制作的产品,与操作系统的结合更加紧密。
缺点
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。
综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。
方案四 C++语言 & C++ Builder
优点
(1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。
缺点
由于推出的时间太短,关于它的各种资料还不太多。
综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。
方案五 SQL语言 & Power Builder
对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序<
难道编写这些功能强大的软件调用的是编译器中内置的已经写好的具有某种强大功能的函数吗?
要想实现具有某些复杂功能的界面软件,一般都有库函数让你调用,windows下有MFC,linux下有QT等,JAVA上面则有swing,但是切记,一般的图形界面库只给你提供界面的显示,其具体功能还是要你自己来实现的,这就好比这些库函数给你一个外壳,你向里面装什么东西由你决定。
至于你所说的在屏幕上打印结果,则是编程的基础,因为大多数软件的作用都是和数据打交道,无非是对数据的增、删、改、查,显示等操作。而你在屏幕上打印的计算结果,即是对数据的改,和显示的过程,只不过显示的时候放在终端而已,而当你使用界面库函数的时候,就可以把这个结果显示到你需要显示的界面上去了。
最后,编程语言不仅仅只是对阿拉伯数字的
⑶ 本科独立用C语言完成没有优化的C语言编译器属于什么水平
我觉得水平还是很高的,但意义恐怕不大。编译器技术是非常成熟的领域,而且由于应用场景的限
制实时,复杂的算法已经自动出局了,你可选的东西是有限的。编译器可能有很多实现的形
式,虚拟机/解释器/静态编译器 等,也有成熟的开源实现。作为本科生,而非专门研究该分支的学生,应该合理分配自己学习的时间,如果做这个编译器就干
掉了大半年,那计网和OS这些课程该咋办?
我知道很多人会认为没有做编译器优化特指中段优化,不考虑机器码上的优化比较划水。但编
译器优化是一个很复杂的东西:首先它和你用的IR表示有关而且是强烈耦合,SSA IR基本还
好,有开源代码和文献记载,你想要的都能在网上挖到但这怎么体现你的水平是吧。你
要考虑编译器的性能,尽管编译器的后端优化基本上可以纳入到某种PEabstract interpretation的
范畴中。
要不然你可以通过编写插件的方式白嫖例如visual studio code这类软
件的强大编辑功能,如果你写的不是c compiler,你也可以尽量把语法设计得很像c,这样你又能进一步
白嫖其强大的intellisense code,当然仍然有不少人或者应该说团队达到了这一步,到这里,应该卷死
了99.99%的同行应该毫无问题。
⑷ 一般设计编译器要将词法分析和语法分析分开的原因是什么
简单性——词法分析技术不如语法分析技术技术复杂,分开之后词法分析过程更简单。(这里还有一些意思差不多的话)
效率——词法分析占用的时间是整个编译时间的一大部分,所以将它们分开有利于优化词法分析,而提高编译效率
可移植性——词法分析通常平台相关,语法分析器可以是平台无关的。分开了对移植有利。
(引自《程序设计语言概念》(第9版) Sebesta着)
⑸ 如何更好的掌握编译器的设计与实现
1. 阅读相关书籍:编译原理、编译器设计、编译器实现等;
2. 自学相关编程语言:C、C++、Java等;
3. 实践:可以使用开源的编译器框架,例如ANTLR,搭建自己的编译器;
4. 了解编译器的各个组成部分,并学习它们的工作原理;
5. 阅读技术文章,了解编译器的设计和实现的最新进展;
6. 加入开源项目,编写和维护编译器;
7. 在论坛上交流,和更多的编译器开发者分享心得体会;
8. 参加学术会议,接触到最新的研究成果;
9. 尝试着自己设计一个编译器,用实践来加深理解。