代码改变世界

考完试,该慢慢总结下了

2011-01-10 21:55  Aga.J  阅读(1282)  评论(0编辑  收藏  举报

终于考完试了,边做项目边复习地过了这个学期的考试,总结下这个学期学了什么。

首先是课程,DB2,SOA,编译原理,操作系统,计算机网络,软件架构实践,软件项目管理,数据库系统概念,知识产权。

接下来一门一门课的说。

DB2没什么好说的,不感兴趣,虽然是DB2但是很多基本内容和常用的数据库很类似,过了这门课拿个IBM发的证书而已。

clip_image002

SOA老师在上面吹了几节概念,然后就来教XML(早就用过了,老师还觉得我们什么都不会,拼命教),然后就进入了基于Web Service的服务发布与调用的SOA

架构实践的基本内容讲解,做了几次试验,SOA不错,有待继续。

clip_image004clip_image006

编译原理,很有趣,很考编程功底,适合我这种有代码癖的人。。。。主要分4次实验来完成:

1 scanner

选择基于表驱动的实现方式,先要对源代码所用的语言的串的构造进行DFA求解,然后识别出token

2 parser

可以使用LL1也可以使用递归下降,利用scanner得到的token来完成程序结构的构建,当然要先分析源代码所用的文法。

 

输入:

输出:

 

clip_image008

clip_image010

3 semantic analyzer

构建符号表并进行类型检查,通过扫描由parser输出的syntax tree,得到各个符号所必要的信息,例如内存分配,行号等构建符号表

输出样例

clip_image012

类型检查需要利用符号表进行对符号名进行散列索引,返回对应的类型信息,完成多种类型检查

 

输入:

输出:

变量重定义

clip_image014

clip_image016

未定义变量的使用

clip_image018

clip_image020

条件判断表达式操作数不是布尔型

clip_image022

clip_image024

操作符左右操作数类型不一致

clip_image026

clip_image028

赋值操作符左右操作数类型不一致

clip_image030

clip_image032

4 三地址码的生成

实在没时间做了,分析了下基本的控制语句的逻辑和算术语句的处理逻辑后,就硬编码的写了上去,没有一个系统的分析过程。其中有点错误。

 

输入:

输出:

 

clip_image034

clip_image036

整个代码结构的设计入下图,最重要的是保持每个模块间的松散耦合,便于模块的重用,同时不针对接口编程,不针对一种语言来实现这个编译器,便于适应语言的词法和文法的更改,更多抽象的东西没有从中提取,有时间有精力的话继续做抽象这方面的。

clip_image038《编译原理及实践》英文版

操作系统

见链接操作系统这门课的学习中得到的思想启发

进程,线程,同步异步通信问题,进程管理(进程调度算法),死锁

内存,内存管理(内存分配回收算法),虚拟内存,内存分配,页面置换算法

文件,文件系统原理,文件管理

IO,中断,IO软件层次

笔记

最后需要在nachos系统上完成进程调度算法等功能

软件架构实践 

见链接软件架构实践(Software Architecture in Practics)学习笔记

已经把几乎把笔记里面的内容都放里面了

最后完成一个在eclipse上的插件,主要功能是提供必要的基础设施帮助人们更好的使用ADD的方法来设计架构

我这块主要负责一个table表格的绘制,基本模板的初始化,模板选择和导入导出数据,很简单的一个东西:首先是eclipse开发插件的环境配置,属性插件开发的过程,然后使用swt辅助开发,最后设计并编码完成。

主要代码框架图如下,更多细节设计就不贴上来了。

clip_image002[1]

总的来说,开发过程还算顺利,需要对eclipse的插件开发有一定的书籍参考来熟悉过程。

计算机网络

5个层次介绍了一番。

数据库系统

数据库基本概念,

DBS,DBMS,3层抽象,ER,数据模型,SQL语句(比较详细),关系代数,查询优化,ER关系模型设计数据库,ER图元素,关系数据库设计,无省分解,依赖保持的设计,第一范式,BC范式,3范式,判断。文件结构和存储,散列索引,主索引,辅助索引,B+树索引实现,静散列,动态散列,各种组织的查询过程开销,排序,归并排序,散列排序,查询优化,关系代数表达式优化,事务,冲突可串行,并发,数据一致性,锁协议

 

IT项目管理