zxlben

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年11月21日

摘要: 前言 - 什么是C++对象模型C++对象模型包括2个方面的含义:1.语言中直接支持面向对象程序设计的部分2.对于各种(面向对象)支持的底层实现机制。 无论是什么语言,都需要转换为汇编。很多面向对象特性不是汇编所原生支持的,这也许是C和C++区别最大的地方吧。 在C中大部分语言层面的机制都可以得到汇编的支持,例如函数调用,循环,条件转移,指针等等... 在C++中,很多特性不被汇编语言所支持,例如继承,虚函数,运算符重载,构造函数等。所以需要提供一种实现机制, 将这些特性转换为实实在在的汇编代码。关于"不变量"在C++对象模型的实现过程中,是需要有一些不变量存在的。有一些东西 阅读全文
posted @ 2013-11-21 16:34 zxlben 阅读(114) 评论(0) 推荐(0) 编辑

摘要: 前言1.Foundation项目是一个定义大系统开发模型的项目,又叫Grail。2.Grail中编译器被分为:parser(语法分析)->type checking -> simplification -> code generation simplification 用于转换程序的内部表现,我的理解其实是预处理,有3种转换: a.与编译器相关的转换, 对于表达式:fct()的解释可能有2种:(1)调用fct函数。(2)对象fct重载了函数调用"()"操作符号。当(2)情况出现时,就需要做一些调整。 b.语意转换 处理构造/析构,支持memberwise初 阅读全文
posted @ 2013-11-21 11:22 zxlben 阅读(152) 评论(0) 推荐(0) 编辑