zoukankan      html  css  js  c++  java
  • Inside The C++ Object Model

    前言

    1.Foundation项目是一个定义大系统开发模型的项目,又叫Grail。

    2.Grail中编译器被分为:parser(语法分析)->type checking -> simplification -> code generation

       simplification 用于转换程序的内部表现,我的理解其实是预处理,有3种转换:

       a.与编译器相关的转换,

      对于表达式:fct()的解释可能有2种:(1)调用fct函数。(2)对象fct重载了函数调用"()"操作符号。当(2)情况出现时,就需要做一些调整。

       b.语意转换

         处理构造/析构,支持memberwise初始化,memberwise复制,安插转换操作符(隐式类型转换?),临时对象,调用构造/析构等..

       c.程序代码和对象模型的转换

         支持虚函数,虚基类,继承,new/delete,对象数组等。

       我的问题是:以上三个分类的依据是什么?为什么采用这样的分类方式?

      对于simplification的定位是实现一个对象模型体系,在其中,对象实现是一个虚拟接口,支持各种对象模型。我的理解:simplification定义一个规范,

      这个规范描述了在实现一个对象模型体系需要需要处理的问题有哪些,以及这些问题之间的关系是什么。对象的实现就是如何解决这些问题,简单的

      可以理解为:就是如何把C++代码转换成C代码。

      本书的目的在我看来有有2个:一个是定义对象模型体系。另一个是如何实现他们。

  • 相关阅读:
    MySQL初始化以及更改密码
    对付小白的ARP的简单介绍
    PXE批量安装CentOS7操作系统
    20不惑
    辩论会
    学习
    JAVA语言的特点
    程序流程图对新手来说很重要。
    浅谈博客、微博与轻博客的区别与联系
    要学好JAVA要注意些什么?
  • 原文地址:https://www.cnblogs.com/zxlben/p/3435205.html
Copyright © 2011-2022 走看看