编译原理断言有哪几种
① 大学计算机科学与技术专业有多少课程
计算机科学与技术专业课程不完全解析
1.计算机导论:
计算机科学的基础课程之一,其教学目的是概要性地对专业课程作介绍,是典型的面向专业新生的课程(即CS0型课程)。认真学习该课程有助于今后的学习,然而这门课程往往容易被新生们忽略……
(教材:可使用学校配发的教材,但建议使用外版翻译教材。)
2.高级语言程序设计:
计算机科学的基础课程之一,教学目的是让本专业同学实际掌握一门程序设计语言并且习得一些程序设计的基本技能,目前的教学语言是C语言。个人认为课程名称可改为“高级程序设计语言”,因为课程对语言的强调远胜于对程序设计本质的讲解。建议在学习这门课程时配以《程序设计实践》一书,效果甚佳。
(教材:
①《从问题到程序——程序设计与C语言引论》 机械工业出版社
②《程序设计实践》 机械工业出版社
③《程序设计语言——实践之路》 电子工业出版社 )
3.离散数学:
计算机科学基础课程之一,被誉为计算机科学的数学基础。其内容博大精深,从中派生出的图论(图算法)、数理逻辑、组合数学以及泛代数等多门专业课程是现代计算机科学和应用数学的主要研究领域。能否学好离散数学对进一步学习以后的专业课程有着非同一般的影响。
(教材及参考书:
①《离散数学》(第四版) 清华大学出版社
②《离散数学导学》机械工业出版社
③《现代应用数学手册:离散数学卷》清华大学出版社 )
4.电路与电子技术:
电子产业有“朝阳产业”的美誉,被认为是信息时代的工业。这门电子与电路技术可谓是对电子学领域学习的敲门砖。虽然课程本身对计算机科学专业今后的学习影响不大,但掌握这项技能对于学生本身专业素养地提高是大有裨益的。同时,学习这门课程也能为今后学习数字逻辑和微机原理等系统底层方面的课程打好基础。
(教材:《电子学基础:电路和元器件》(第四版)清华大学出版社)
5.面向对象程序设计:
如果说上世纪软件开发领域最伟大的突破是什么,面向对象程序设计(OOP)必为其中之一。目前主流的程序设计语言,如C++、Java、Python和Delphi等,几乎清一色支持面向对象。可以说,掌握的面向对象的精髓,便是掌握了我们这个行业的入门钥匙。我校此课程的教学语言采用的是C++,而就国内C++教学的糟糕现状来看,若想完整掌握面向对象思想,学生自己不努力是不行的。
(教材及参考书:
①《C++ Primer中文版》(第四版) 人民邮电出版社
②《Essential C++ 中文版》华中科技大学出版社
③《Effective C++ 中文版》(第三版)电子工业出版社
④《Accelerated C++(影印版)》机械工业出版社
⑤《C++语言的设计与演化》机械工业出版社 )
6.数字逻辑:
计算机科学核心课程之一。计算机科学中有一个研究领域即系统设计领域,而本门课程即为这一领域研究的基础。正确认识与掌握数字逻辑及其设计,畅憨扳窖殖忌帮媳爆颅可以使那些有志于系统底层开发的学生获益匪浅。
(教材:
①《数字基础(第八版)》清华大学出版社
②《逻辑与计算机设计基础》 中国电力出版社 )
7.数据结构:
计算机科学核心课程之一。对数据地有效组织是程序的主要任务之一,算法的主要操作对象亦为数据结构。从简单的数组和链表,到各色高级的抽象数据类型(ADT),数据结构在程序设计中的地位不言而喻。学好数据结构,是进一步学习专业课的基本前提。可以这么说,一个不懂得如何组织和操控数据的学生,根本就不配当我们计算机科学专业的学生,更不配当一名程序员!!!
(教材:
①《C算法 第一卷(第三版)》人民邮电出版社
②《程序设计抽象思想——C语言描述》清华大学出版社
③《数据抽象与问题求解——C++语言描述(第四版)》清华大学出版社
④《数据结构与算法——Java语言描述》机械工业出版社 )
8.计算方法:内容不详,不敢妄作断言。 (教材:待定)
// 转帖者:线性代数、微积分、微分方程等的计算机算法
9.计算机原理与汇编:
系统底层课程之一,亦为计算机科学核心课程。重点讲述计算机(微机)构造以及低级语言——汇编语言的基础知识。学习这门课程,对进一步学习编译原理等专业高级课程有很大帮助。
(教材:
①《深入理解计算机系统》中国电力出版社
②《Intel汇编语言程序设计(影印版)》清华大学出版社
③《Windows环境下32位汇编语言程序设计(第二版)》电子工业出版社
④《汇编语言编程艺术》清华大学出版社 )
10.操作系统:
计算机科学的核心课程之一。课程全面讲述了操作系统的原理与构造,各类上机实验更能让学生对操作系统有深刻地理解。
(教材:
①《操作系统(第三版)》机械工业出版社
②《现代操作系统(第二版)》机械工业出版社
③《Linux内核设计与实现(影印版)》机械工业出版社
④《UNIX系统编程》机械工业出版社
⑤《UNIX环境高级编程(第二版)》人民邮电出版社 )
11.软件工程:
计算机科学的核心课程之一。近年来,随着软件开发革命地进一步深化,批判软件工程及过程方法改进的着作日益丰富,我们也得以从不良的软件开放中解放。建议在学习本课程时,联系自己的实战,并阅读批判软件工程和改良软件工程的着作。
(教材及参考书:
①《软件工程:实践者的研究方法(第五版)》机械工业出版社
②《程序设计心理学(银年纪念版)》清华大学出版社
③《人月神话(银年纪念版)》清华大学出版社
④《人件》清华大学出版社 )
12.数据库原理及应用:
计算机科学与信息学科的好像课程之一。课程讲述了数据库原理以及设计等方面的内容。对于那些注重实效的学生而言,学好这门课程,可以使今后的工作更为轻松。
(教材:《数据库系统概念(第四版)》机械工业出版社)
13.运筹学及其算法:
此课程课作为计算机科学的辅助课程,向学生介绍了运筹学方面的算法,此类算法属于现代算法范畴,本人暂时还未涉猎,故恕难对此课程解析之…… (教材:待定)
// 转帖者:线性规划、动态规划、排队论、决策分析等等
14.计算机网络:
计算机科学的核心课程之一。课程详细地介绍了计算机网络的发展、组成和协议方面的内容。对于自我要求较高的同学而言,学好这门课程义不容辞!
(教材:
①《计算机网络(第四版)》清华大学出版社
②《TCP/IP协议族》清华大学出版社 )
15.软件开发管理:
应该是软件工程课的附属课程吧,不详。 (教材:待定)
// 转帖者:对于工程,管理重于技术
16.数学建模:
可以说是本专业的相关课程,但其意义及作用目前在下还不甚了解。 (教材:待定)
// 转帖者:既然学了数学,会用也很重要吧
17.J2EE体系结构:
J2EE是目前我们产业的两大工业平台之一,学习这门课程,可以为今后涉足企业级开发领域打下基础。但请注意,J2EE和Java语言本身都是在不断演进的,因而如果不能在课程结束后持续学习相关技术,恐怕还不等你出大学校门,这门课的内容就已经过时了…… (教材:最新的国外相关教材。)
18.计算机图形学:
计算机科学的核心课程之一。有关计算机图形学在各个领域的应用不必在下一一说明了吧。无论是游戏开发,还是航空航天等前沿领域,到处都有计算机图形学的技术被应用。目前该课程主要用C语言和OpenGL图形库进行教学,效果应该还算不错。
(教材及参考书:
①《计算机图形学原理与实践-C语言描述(第二版)》机械工业出版社
②《交互式计算机图形学——基于OpenGL的自顶向下的方法(第四版)》清华大学出版社
③《OpenGL超级宝典(第三版)》 人民邮电出版社 )
19.微型计算机技术:
计算机专业的核心课程之一。课程详细地分析了微型计算机(主要是单片机)技术,由于这方面资料奇缺,这门课程可不太受在下欢迎…… (教材:待定)
// 转帖者:想搞嵌入式的要注意了
20.编译原理:
计算机科学核心课程之一。如果想要写出好的程序,编译原理的相关知识必不可少,因而这门课程是十分重点的一门课程。课程教材“龙书”、“虎书”和“鲸书”更是我们专业的经典着作。
(教材:
①《编译原理》机械工业出版社
②《现代编译原理——C语言描述》人民邮电出版社
③《高级编译器设计与实现》机械工业出版社 )
21.Web系统开发:
目前主流的web开发主要集中在ASP.NET和JSP开发领域 ,当然,还有近来火爆异常的Ajax,以前的CGI和ASP已经不那么流行了。与J2EE一样,这是一门必须持续学习的课程,否则,你必将被其所抛弃! (教材:最新国外相关书籍。)
22.嵌入式软件开发:
这个领域可谓是软件开发的前沿领域,也是未来软件业霸主的孕育地之一(另两个领域为Web开发和企业级开发)。目前的软件开发领域正蕴含着“泛嵌入式”的潜规则(《程序员》2006年7月刊)。认真并持续学习这门课程,对将来的工作会有莫大的帮助。 (教材:《嵌入式系统开放大全》人民邮电出版社)
23.算法设计与分析:
计算机科学的核心课程之一。“程序是衣,算法为魂”(《程序员》2006年3月刊),这门课程是本专业学生所亟需掌握的,如果学不好这门课,那么,你就不是一名优秀的程序员!
(教材:
①《数据结构与算法分析-C语言描述》机械工业出版社
②《C算法 第一卷 (第三版)》人民邮电出版社 )
24.情报检索与利用:这门课我可没涉猎过…… (教材:待定)
以上纯系复制,完全为了帮你!!!!
② 求C++ 网络编程最好的书籍 谢谢了
学习编程基础也很重要的,路要一步一步地走。不要老是想到看一本书就成为高手。我给你推荐一些书吧,你可以选一些看。其中很多都是经典之作。C++是以C为基础的,所以你最好看一下C语言,网络方面,《计算机网络》和《TCP/IP详解》是必看的。望采纳。
1、算法
计算机程序设计艺术-------Donald.E.Knuth----------算法“倚天屠龙”双剑
算法导论-----------------Thomas H. Cormen--------算法“倚天屠龙”双剑
离散数学及其应用----------Kenneth H.Rosen
具体数学—计算机科学基础--------Donald.E.Knuth
2、数据结构
数据结构 C++
数据结构算法与应用
3、C语言
C程序设计语言(第2版·新版)---C语言“倚天屠龙双剑”---Brian W.Kernighan“C语言之父”
C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata
C程序设计(第三版)---------------------------谭浩强
C语言大全(第四版)---------------------------HERBERT SCHILDT
C语言接口与实现:创建可重用软件的技术-------------DAVID R.HANSON
C语言参考手册(原书第5版)--------------------------Samuel P.Harbison
C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱与缺陷-----------------------------------Andrew Koenig
5、C++
C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父”
C++ Primer (第3版)中文版----c++八大金刚---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金刚---Stanley B.Lippman
C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis
C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父”
深度探索C++对象模型---c++八大金刚----Stanley B.Lippman
Essential C++中文版---c++八大金刚---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers
More Effective C++中文版----c++八大金刚------Scott Meyers
C++编程思想(第2版) 第1卷:标准C++导引--------Bruce Eckel
C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel
C++程序设计--------------------------谭浩强
C++ 程序设计教程(第2版)--------------钱能
C++ Primer Plus(第五版)中文版---Stephen Prata
6、操作系统
深入理解计算机系统(修订版)-------RANDAL E.BRYANT
计算机操作系统(第六版)
7、编译原理
跟我一起写makefile
《编译原理技术和工具》------- Alfred ------- 龙书
《现代编译原理-C语言描述》 ----------- Andrew W. Appel ----------- 虎书
《高级编译器设计与实现》 ----------- Steven S.Muchnick ----------- 鲸书
8、网络
计算机网络第四版中文版-----------Andrew S.Tanenbaum -------网络编程三剑客
TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客
UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客
用TCP/IP进行网际互联-----------Douglas E. Comer
高级TCP/IP编程-------------------Jon C. Snader
C++网络编程-----------------------Douglas Schmidt
UNIX环境高级编程(第2版)--------------------Richard Stevens
9、Linux
Linux内核设计与实现
Linux内核完全注释
LINUX内核分析及编程
③ 大学的计算机科学与技术主要学的是什么
1.计算机导论: 计算机科学的基础课程之一,其教学目的是概要性地对专业课程作介绍,是典型的面向专业新生的课程(即CS0型课程)。
2.高级语言程序设计: 计算机科学的基础课程之一,教学目的是让本专业同学实际掌握一门程序设计语言并且习得一些程序设计的基本技能,目前的教学语言是C语言。
3.离散数学: 计算机科学基础课程之一,被誉为计算机科学的数学基础。其内容博大精深,从中派生出的图论(图算法)、数理逻辑、组合数学以及泛代数等多门专业课程是现代计算机科学和应用数学的主要研究领域。
4.电路与电子技术: 电子产业有“朝阳产业”的美誉,被认为是信息时代的工业。这门电子与电路技术可谓是对电子学领域学习的敲门砖。虽然课程本身对计算机科学专业今后的学习影响不大,但掌握这项技能对于学生本身专业素养地提高是大有裨益的。同时,学习这门课程也能为今后学习数字逻辑和微机原理等系统底层方面的课程打好基础。
5.面向对象程序设计: 如果说上世纪软件开发领域最伟大的突破是什么,面向对象程序设计(OOP)必为其中之一。目前主流的程序设计语言,如C++、Java、Python和Delphi等,几乎清一色支持面向对象。可以说,掌握的面向对象的精髓,便是掌握了我们这个行业的入门钥匙。我校此课程的教学语言采用的是C++,而就国内C++教学的糟糕现状来看,若想完整掌握面向对象思想,学生自己不努力是不行的。
6.数字逻辑: 计算机科学核心课程之一。计算机科学中有一个研究领域即系统设计领域,而本门课程即为这一领域研究的基础。正确认识与掌握数字逻辑及其设计,可以使那些有志于系统底层开发的学生获益匪浅。
7.数据结构: 计算机科学核心课程之一。对数据地有效组织是程序的主要任务之一,算法的主要操作对象亦为数据结构。从简单的数组和链表,到各色高级的抽象数据类型(ADT),数据结构在程序设计中的地位不言而喻。学好数据结构,是进一步学习专业课的基本前提。
8.计算方法:内容不详,不敢妄作断言。
9.计算机原理与汇编: 系统底层课程之一,亦为计算机科学核心课程。重点讲述计算机(微机)构造以及低级语言——汇编语言的基础知识。
10.操作系统: 计算机科学的核心课程之一。课程全面讲述了操作系统的原理与构造,各类上机实验更能让学生对操作系统有深刻地理解。
11.软件工程: 计算机科学的核心课程之一。近年来,随着软件开发革命地进一步深化,批判软件工程及过程方法改进的着作日益丰富,我们也得以从不良的软件开放中解放。
12.数据库原理及应用: 计算机科学与信息学科的好像课程之一。课程讲述了数据库原理以及设计等方面的内容。对于那些注重实效的学生而言,学好这门课程,可以使今后的工作更为轻松。
13.运筹学及其算法: 此课程课作为计算机科学的辅助课程,向学生介绍了运筹学方面的算法,此类算法属于现代算法范畴,本人暂时还未涉猎,故恕难对此课程解析之……
14.计算机网络: 计算机科学的核心课程之一。课程详细地介绍了计算机网络的发展、组成和协议方面的内容。
15.软件开发管理: 应该是软件工程课的附属课程吧,不详。
16.数学建模: 可以说是本专业的相关课程,但其意义及作用目前在下还不甚了解。
17.J2EE体系结构: J2EE是目前我们产业的两大工业平台之一,学习这门课程,可以为今后涉足企业级开发领域打下基础。
18.计算机图形学: 计算机科学的核心课程之一。有关计算机图形学在各个领域的应用不必在下一一说明了吧。无论是游戏开发,还是航空航天等前沿领域,到处都有计算机图形学的技术被应用。目前该课程主要用C语言和OpenGL图形库进行教学,效果应该还算不错。
19.微型计算机技术: 计算机专业的核心课程之一。
20.编译原理: 计算机科学核心课程之一。如果想要写出好的程序,编译原理的相关知识必不可少,因而这门课程是十分重点的一门课程。
21.Web系统开发: 目前主流的web开发主要集中在ASP.NET和JSP开发领域 ,当然,还有近来火爆异常的Ajax,以前的CGI和ASP已经不那么流行了。
22.嵌入式软件开发: 这个领域可谓是软件开发的前沿领域,也是未来软件业霸主的孕育地之一(另两个领域为Web开发和企业级开发)。
23.算法设计与分析: 计算机科学的核心课程之一。
24.情报检索与利用:这门课我可没涉猎过……
④ 谁能介绍一下计算机科学与技术专业
计算机科学与技术专业课程不完全解析
1.计算机导论:
计算机科学的基础课程之一,其教学目的是概要性地对专业课程作介绍,是典型的面向专业新生的课程(即CS0型课程)。认真学习该课程有助于今后的学习,然而这门课程往往容易被新生们忽略……
(推荐教材:可使用学校配发的教材,但建议使用外版翻译教材。)
2.高级语言程序设计:
计算机科学的基础课程之一,教学目的是让本专业同学实际掌握一门程序设计语言并且习得一些程序设计的基本技能,目前的教学语言是C语言。个人认为课程名称可改为“高级程序设计语言”,因为课程对语言的强调远胜于对程序设计本质的讲解。建议在学习这门课程时配以《程序设计实践》一书,效果甚佳。
(推荐教材:
①《从问题到程序——程序设计与C语言引论》 机械工业出版社
②《程序设计实践》 机械工业出版社
③《程序设计语言——实践之路》 电子工业出版社 )
3.离散数学:
计算机科学基础课程之一,被誉为计算机科学的数学基础。其内容博大精深,从中派生出的图论(图算法)、数理逻辑、组合数学以及泛代数等多门专业课程是现代计算机科学和应用数学的主要研究领域。能否学好离散数学对进一步学习以后的专业课程有着非同一般的影响。
(推荐教材及参考书:
①《离散数学》(第四版) 清华大学出版社
②《离散数学导学》机械工业出版社
③《现代应用数学手册:离散数学卷》清华大学出版社 )
4.电路与电子技术:
电子产业有“朝阳产业”的美誉,被认为是信息时代的工业。这门电子与电路技术可谓是对电子学领域学习的敲门砖。虽然课程本身对计算机科学专业今后的学习影响不大,但掌握这项技能对于学生本身专业素养地提高是大有裨益的。同时,学习这门课程也能为今后学习数字逻辑和微机原理等系统底层方面的课程打好基础。
(推荐教材:《电子学基础:电路和元器件》(第四版)清华大学出版社)
5.面向对象程序设计:
如果说上世纪软件开发领域最伟大的突破是什么,面向对象程序设计(OOP)必为其中之一。目前主流的程序设计语言,如C++、Java、Python和Delphi等,几乎清一色支持面向对象。可以说,掌握的面向对象的精髓,便是掌握了我们这个行业的入门钥匙。我校此课程的教学语言采用的是C++,而就国内C++教学的糟糕现状来看,若想完整掌握面向对象思想,学生自己不努力是不行的。
(推荐教材及参考书:
①《C++ Primer中文版》(第四版) 人民邮电出版社
②《Essential C++ 中文版》华中科技大学出版社
③《Effective C++ 中文版》(第三版)电子工业出版社
④《Accelerated C++(影印版)》机械工业出版社
⑤《C++语言的设计与演化》机械工业出版社 )
6.数字逻辑:
计算机科学核心课程之一。计算机科学中有一个研究领域即系统设计领域,而本门课程即为这一领域研究的基础。正确认识与掌握数字逻辑及其设计,可以使那些有志于系统底层开发的学生获益匪浅。
(推荐教材:
①《数字基础(第八版)》清华大学出版社
②《逻辑与计算机设计基础》 中国电力出版社 )
7.数据结构:
计算机科学核心课程之一。对数据地有效组织是程序的主要任务之一,算法的主要操作对象亦为数据结构。从简单的数组和链表,到各色高级的抽象数据类型(ADT),数据结构在程序设计中的地位不言而喻。学好数据结构,是进一步学习专业课的基本前提。可以这么说,一个不懂得如何组织和操控数据的学生,根本就不配当我们计算机科学专业的学生,更不配当一名程序员!!!
(推荐教材:
①《C算法 第一卷(第三版)》人民邮电出版社
②《程序设计抽象思想——C语言描述》清华大学出版社
③《数据抽象与问题求解——C++语言描述(第四版)》清华大学出版社
④《数据结构与算法——Java语言描述》机械工业出版社 )
8.计算方法:内容不详,不敢妄作断言。 (推荐教材:待定)
// 转帖者:线性代数、微积分、微分方程等的计算机算法
9.计算机原理与汇编:
系统底层课程之一,亦为计算机科学核心课程。重点讲述计算机(微机)构造以及低级语言——汇编语言的基础知识。学习这门课程,对进一步学习编译原理等专业高级课程有很大帮助。
(推荐教材:
①《深入理解计算机系统》中国电力出版社
②《Intel汇编语言程序设计(影印版)》清华大学出版社
③《Windows环境下32位汇编语言程序设计(第二版)》电子工业出版社
④《汇编语言编程艺术》清华大学出版社 )
10.操作系统:
计算机科学的核心课程之一。课程全面讲述了操作系统的原理与构造,各类上机实验更能让学生对操作系统有深刻地理解。
(推荐教材:
①《操作系统(第三版)》机械工业出版社
②《现代操作系统(第二版)》机械工业出版社
③《Linux内核设计与实现(影印版)》机械工业出版社
④《UNIX系统编程》机械工业出版社
⑤《UNIX环境高级编程(第二版)》人民邮电出版社 )
11.软件工程:
计算机科学的核心课程之一。近年来,随着软件开发革命地进一步深化,批判软件工程及过程方法改进的着作日益丰富,我们也得以从不良的软件开放中解放。建议在学习本课程时,联系自己的实战,并阅读批判软件工程和改良软件工程的着作。
(推荐教材及参考书:
①《软件工程:实践者的研究方法(第五版)》机械工业出版社
②《程序设计心理学(银年纪念版)》清华大学出版社
③《人月神话(银年纪念版)》清华大学出版社
④《人件》清华大学出版社 )
12.数据库原理及应用:
计算机科学与信息学科的好像课程之一。课程讲述了数据库原理以及设计等方面的内容。对于那些注重实效的学生而言,学好这门课程,可以使今后的工作更为轻松。
(推荐教材:《数据库系统概念(第四版)》机械工业出版社)
13.运筹学及其算法:
此课程课作为计算机科学的辅助课程,向学生介绍了运筹学方面的算法,此类算法属于现代算法范畴,本人暂时还未涉猎,故恕难对此课程解析之…… (推荐教材:待定)
// 转帖者:线性规划、动态规划、排队论、决策分析等等
14.计算机网络:
计算机科学的核心课程之一。课程详细地介绍了计算机网络的发展、组成和协议方面的内容。对于自我要求较高的同学而言,学好这门课程义不容辞!
(推荐教材:
①《计算机网络(第四版)》清华大学出版社
②《TCP/IP协议族》清华大学出版社 )
15.软件开发管理:
应该是软件工程课的附属课程吧,不详。 (推荐教材:待定)
// 转帖者:对于工程,管理重于技术
16.数学建模:
可以说是本专业的相关课程,但其意义及作用目前在下还不甚了解。 (推荐教材:待定)
// 转帖者:既然学了数学,会用也很重要吧
17.J2EE体系结构:
J2EE是目前我们产业的两大工业平台之一,学习这门课程,可以为今后涉足企业级开发领域打下基础。但请注意,J2EE和Java语言本身都是在不断演进的,因而如果不能在课程结束后持续学习相关技术,恐怕还不等你出大学校门,这门课的内容就已经过时了…… (推荐教材:最新的国外相关教材。)
18.计算机图形学:
计算机科学的核心课程之一。有关计算机图形学在各个领域的应用不必在下一一说明了吧。无论是游戏开发,还是航空航天等前沿领域,到处都有计算机图形学的技术被应用。目前该课程主要用C语言和OpenGL图形库进行教学,效果应该还算不错。
(推荐教材及参考书:
①《计算机图形学原理与实践-C语言描述(第二版)》机械工业出版社
②《交互式计算机图形学——基于OpenGL的自顶向下的方法(第四版)》清华大学出版社
③《OpenGL超级宝典(第三版)》 人民邮电出版社 )
19.微型计算机技术:
计算机专业的核心课程之一。课程详细地分析了微型计算机(主要是单片机)技术,由于这方面资料奇缺,这门课程可不太受在下欢迎…… (推荐教材:待定)
// 转帖者:想搞嵌入式的要注意了
20.编译原理:
计算机科学核心课程之一。如果想要写出好的程序,编译原理的相关知识必不可少,因而这门课程是十分重点的一门课程。课程教材“龙书”、“虎书”和“鲸书”更是我们专业的经典着作。
(推荐教材:
①《编译原理》机械工业出版社
②《现代编译原理——C语言描述》人民邮电出版社
③《高级编译器设计与实现》机械工业出版社 )
21.Web系统开发:
目前主流的web开发主要集中在ASP.NET和JSP开发领域 ,当然,还有近来火爆异常的Ajax,以前的CGI和ASP已经不那么流行了。与J2EE一样,这是一门必须持续学习的课程,否则,你必将被其所抛弃! (推荐教材:最新国外相关书籍。)
22.嵌入式软件开发:
这个领域可谓是软件开发的前沿领域,也是未来软件业霸主的孕育地之一(另两个领域为Web开发和企业级开发)。目前的软件开发领域正蕴含着“泛嵌入式”的潜规则(《程序员》2006年7月刊)。认真并持续学习这门课程,对将来的工作会有莫大的帮助。 (推荐教材:《嵌入式系统开放大全》人民邮电出版社)
23.算法设计与分析:
计算机科学的核心课程之一。“程序是衣,算法为魂”(《程序员》2006年3月刊),这门课程是本专业学生所亟需掌握的,如果学不好这门课,那么,你就不是一名优秀的程序员!
(推荐教材:
①《数据结构与算法分析-C语言描述》机械工业出版社
②《C算法 第一卷 (第三版)》人民邮电出版社 )
24.情报检索与利用:这门课我可没涉猎过…… (推荐教材:待定)
以上纯系复制,完全为了帮你!!!!
⑤ 编译原理全部的名词解释
书上有别那么懒!。。。。
编译过程的六个阶段:词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成
解释程序:把某种语言的源程序转换成等价的另一种语言程序——目标语言程序,然后再执行目标程序。解释方式是接受某高级语言的一个语句输入,进行解释并控制计算机执行,马上得到这句的执行结果,然后再接受下一句。
编译程序:就是指这样一种程序,通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序(机器语言程序或汇编语言程序)。
解释程序和编译程序的根本区别:是否生成目标代码
句子的二义性(这里的二义性是指语法结构上的。):文法G[S]的一个句子如果能找到两种不同的最左推导(或最右推导),或者存在两棵不同的语法树,则称这个句子是二义性的。
文法的二义性:一个文法如果包含二义性的句子,则这个文法是二义文法,否则是无二义文法。
LL(1)的含义:(LL(1)文法是无二义的; LL(1)文法不含左递归)
第1个L:从左到右扫描输入串 第2个L:生成的是最左推导
1 :向右看1个输入符号便可决定选择哪个产生式
某些非LL(1)文法到LL(1)文法的等价变换: 1. 提取公因子 2. 消除左递归
文法符号的属性:单词的含义,即与文法符号相关的一些信息。如,类型、值、存储地址等。
一个属性文法(attribute grammar)是一个三元组A=(G, V, F)
G:上下文无关文法。
V:属性的有穷集。每个属性与文法的一个终结符或非终结符相连。属性与变量一样,可以进行计算和传递。
F:关于属性的断言或谓词(一组属性的计算规则)的有穷集。断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性。
综合属性:若产生式左部的单非终结符A的属性值由右部各非终结符的属性值决定,则A的属性称为综合属
继承属性:若产生式右部符号B的属性值是根据左部非终结符的属性值或者右部其它符号的属性值决定的,则B的属性为继承属性。
(1)非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性。
(2) 终结符只有综合属性,没有继承属性,它们由词法程序提供。
在计算时: 综合属性沿属性语法树向上传递;继承属性沿属性语法树向下传递。
语法制导翻译:是指在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作。
语法制导翻译实现:对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。
中间代码(中间语言)
1、是复杂性介于源程序语言和机器语言的一种表示形式。
2、一般,快速编译程序直接生成目标代码。
3、为了使编译程序结构在逻辑上更为简单明确,常采用中间代码,这样可以将与机器相关的某些实现细节置于代码生成阶段仔细处理,并且可以在中间代码一级进行优化工作,使得代码优化比较容易实现。
何谓中间代码:源程序的一种内部表示,不依赖目标机的结构,易于代码的机械生成。
为何要转换成中间代码:(1)逻辑结构清楚;利于不同目标机上实现同一种语言。
(2)便于移植,便于修改,便于进行与机器无关的优化。
中间代码的几种形式:逆波兰记号 ,三元式和树形表示 ,四元式
符号表的一般形式:一张符号表的的组成包括两项,即名字栏和信息栏。
信息栏包含许多子栏和标志位,用来记录相应名字和种种不同属性,名字栏也称主栏。主栏的内容称为关键字(key word)。
符号表的功能:(1)收集符号属性 (2) 上下文语义的合法性检查的依据: 检查标识符属性在上下文中的一致性和合法性。(3)作为目标代码生成阶段地址分配的依据
符号的主要属性及作用:
1. 符号名 2. 符号的类型 (整型、实型、字符串型等))3. 符号的存储类别(公共、私有)
4. 符号的作用域及可视性 (全局、局部) 5. 符号变量的存储分配信息 (静态存储区、动态存储区)
存储分配方案策略:静态存储分配;动态存储分配:栈式、 堆式。
静态存储分配
1、基本策略
在编译时就安排好目标程序运行时的全部数据空间,并能确定每个数据项的单元地址。
2、适用的分配对象:子程序的目标代码段;全局数据目标(全局变量)
3、静态存储分配的要求:不允许递归调用,不含有可变数组。
FORTRAN程序是段结构,不允许递归,数据名大小、性质固定。 是典型的静态分配
动态存储分配
1、如果一个程序设计语言允许递归过程、可变数组或允许用户自由申请和释放空间,那么,就需要采用动态存储管理技术。
2、两种动态存储分配方式:栈式,堆式
栈式动态存储分配
分配策略:将整个程序的数据空间设计为一个栈。
【例】在具有递归结构的语言程序中,每当调用一个过程时,它所需的数据空间就分配在栈顶,每当过程工作结束时就释放这部分空间。
过程所需的数据空间包括两部分
一部分是生存期在本过程这次活动中的数据对象。如局部变量、参数单元、临时变量等;
另一部分则是用以管理过程活动的记录信息(连接数据)。
活动记录(AR)
一个过程的一次执行所需要的信息使用一个连续的存储区来管理,这个区 (块)叫做一个活动记录。
构成
1、临时工作单元;2、局部变量;3、机器状态信息;4、存取链;
5、控制链;6、实参;7、返回地址
什么是代码优化
所谓优化,就是对代码进行等价变换,使得变换后的代码运行结果与变换前代码运行结果相同,而运行速度加快或占用存储空间减少。
优化原则:等价原则:经过优化后不应改变程序运行的结果。
有效原则:使优化后所产生的目标代码运行时间较短,占用的存储空间较小。
合算原则:以尽可能低的代价取得较好的优化效果。
常见的优化技术
(1) 删除多余运算(删除公共子表达式) (2) 代码外提 +删除归纳变量+ (3)强度削弱; (4)变换循环控制条件 (5)合并已知量与复写传播 (6)删除无用赋值
基本块定义
程序中只有一个入口和一个出口的一段顺序执行的语句序列,称为程序的一个基本块。
给我分数啊。。。