社区
其它技术问题
帖子详情
忽然想到一个问题,如果我们不扩充C++运行时,能否实现真编译的模板?
fixopen
2005-12-09 03:17:08
RT
...全文
547
34
打赏
收藏
忽然想到一个问题,如果我们不扩充C++运行时,能否实现真编译的模板?
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
34 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vollin
2006-01-24
打赏
举报
回复
我的意思是,不要改变语言,而只加入新的库,让使用这个库的一些特殊对象具有一些特殊的特征。
这样只要有相应的库,我们就可以使用更多的设计手段,或模式。就能够提高效率。
vollin
2006-01-24
打赏
举报
回复
UP,我个人觉得如果要实现运行时,可以采用公用基类的办法;如果要为此而变成解释语言,那就不是C++了。
zeusnchen
2006-01-17
打赏
举报
回复
C++的template是在编译时实现generalization的
楼主事实上是希望在C++中添加一种新的支持泛型编程的机制(运行时?或至少事后编译阶段)
fbms3
2006-01-10
打赏
举报
回复
感觉云山雾罩的.
nicknide
2006-01-08
打赏
举报
回复
暂时不行, 也感觉没有必要。
Kid4you
2006-01-08
打赏
举报
回复
语言的用途不一样.
ruodeer
2006-01-07
打赏
举报
回复
编译器和模板??
lexchou
2006-01-07
打赏
举报
回复
C++的模版是在编译期进行特化的
C#的模版是在运行期进行特化的
java的不清楚,但按照行面的描述,也应该是编译期进行特化的
Dev
2006-01-07
打赏
举报
回复
同意 XiaoDingDangKM(小叮当)
编译和解释没有绝对的界限,是为了达到某些目的而采取的手段。我觉得编译的目的就是能把所有能确定的东西先确定下来,解决效率问题,而解释是解决通用性的问题。编译程序中也有解释成份,如C++中运行时虚函数地址的解析。解释中也有编译,VB中有伪编译和真编译。
C++把不真编译模版,也许考虑的就是效率问题。而C#、 java为什么看上去可以实例化,不把它当作负担,因为他们本身就是解释语言。
^_^
XiaoDingDangKM
2006-01-05
打赏
举报
回复
要实现“真”编译,我认为只有将模板中的确定因素预编译,不确定因素待运行时解释,最后合成一个确定大小、地址、合理的可执行模块。如果抽不出可预编译因素,也就等于运行时解释。效率不敢恭维!其实真而不真。最终底层是cpu指令序列,而指令是要求有确切参数的(地址、大小等)。
当然有一种真编译有点意义,那就是先完成词法分析、语法分析等处理,运行时就不需要这些费时的过程。剩下的就是具体类型代入后的语义分析、目标码生成。我不知道java、.net还有其它高招吗?
泛型编程是一种抽象编程,抽象是需要实例化的,实例化是需要解释的。何为真?
foochow
2005-12-31
打赏
举报
回复
板凳,学习!
firingme
2005-12-31
打赏
举报
回复
这个应该不是compile time和run time之间的差别,而是compiler和linker之间的差别。
fixopen
2005-12-30
打赏
举报
回复
另外,你是否也同意,如果不扩充C++Runtime,C++的模板就不能真编译?
fixopen
2005-12-30
打赏
举报
回复
Dev(东方云龙)的回答上了正轨.
不过我有一事不明,你是如何区分哪些工作应该是编译期的,而另一些是运行期的?
Dev
2005-12-28
打赏
举报
回复
当然不可以的。除非你使用一个动态的解释机,那就是你提过就是所谓的CLI的强大,把编译期的工作放到运行期去做,你要衡量代价有多大。其实没有多大的意义。
^_^
fixopen
2005-12-26
打赏
举报
回复
不知道什么原因,我总是看不到能让我觉得有希望的回复。说实话,我觉得C++语言不扩充运行时,是没有办法实现模板的真编译的。
baickl(chenzg)说的关于基类什么的,我觉得与模板编译没有关系。
baickl
2005-12-17
打赏
举报
回复
模板只有被实例化时才会生成目标代码,不然编译器不知道他的具体类型,怎么生成目标代码啊?
Java和C#应该是有默认基类对象的,他们的任何对象类型都有一个默认的基类,这是编译器级别的实现.C++,也可以做到这点,但是你不可能要求每个用你的开发库的人,都创建基于你的基类的类.
xenix
2005-12-16
打赏
举报
回复
偶个人的看法是模版是用来控制编译器的语言,正如宏是控制预处理器的语言一样,这个跟 runtime 系统毫无关系.
xili
2005-12-12
打赏
举报
回复
原来竟然是 runtime. 受教.
fixopen
2005-12-12
打赏
举报
回复
运行时本身就是一个名词,最基本的意思是程序处于活动状态的时间段,后来用来代表程序运行时所依赖的支持环境,C和C++都是只需要最小运行时支持的语言,而Java和C#则需要强大的运行时。Python等动态语言的运行时就更为强大了。
加载更多回复(14)
SummerTTS 是
一个
基于
C++
的独立
编译
的中文和英文语音合成项目,可以本地运行不需要网络,而且没有额外的依赖,
一键
编译
完成即可用于中文和英文的语音合成
C++
是一种面向对象的计算机程序设计语言,由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并
实现
(最初这种语言被称作“C with Classes”带类的C)。它是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。 图片
C++
是C语言的继承,进一步
扩充
和完善了C语言,成为一种面向对象的程序设计语言。
C++
这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 在C基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了
C++
。
C++
进一步
扩充
和完善了C语言,成为一种面向 对象的程序设计语言。
C++
目前流行的
编译
器最新版本是Borland
C++
4.5,Symantec
C++
6.1,和Microsoft Visual
C++
2012。
C++
提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将
问题
空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。 图片
C++
由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并
实现
(最初这种语言被称作“C with Classes”带类的C)。开始,
C++
是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(Operator Overloading)、多重继承(Multiple Inheritance)、
模板
(Template)、异常(Exception)、RTTI、命名空间(Name Space)逐渐被加入标准。
编译
原理作业,
C++
源程序的压缩和解压,自动机,文法
问题
处理器,TINY
扩充
语言的语法树生成+源代码+文档说明+实验报告+可执行
编译
原理作业,
C++
源程序的压缩和解压,自动机,文法
问题
处理器,TINY
扩充
语言的语法树生成+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以
实现
其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
编译
原理实验源码+报告(
C++
版本,用
C++
builder运行)
实现
内容 (1)读程序 设计测试方式(将语句必须写在getsym()合适的地方),测试单词是否能被识别(只完成了词法分析部分,代码运行出错不用理会) Form1->printfs (“关键字”); Form1->printfs ("标识符"); Form1->printfs("数字"); Form1->printfs(“双符号"); Form1->printfs("单字符"); (2)
扩充
和修改单词 ① 增加保留字:ELSE,FOR,TO,DOWNTO,RETURN ② 增加单词:*=,/=,++,--,&,||,! ③ 修改单词:不等号# 改为 <> (3)增加条件语句的ELSE子句 ① 给出else的语法图; ② 改写
编译
程序; ③ 设计测试源码ELSE.PL0,并能正确运行。
C++
11标准发布文档
查阅最准确的
C++
语言描述必备文档,遇到
问题
,以文档标准为准
谭浩强
C++
讲义ppt
简单易懂,适合初学者,欢迎下载哈 各位大虾
其它技术问题
3,882
社区成员
9,045
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章