当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 26 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 一门很有用的编程语言:C--
帖子发表于 : 2008-01-10 13:19 
头像

注册: 2006-05-03 0:39
帖子: 8273
地址: المريخ
送出感谢: 0 次
接收感谢: 1
官方网站:http://www.cminusminus.org
引用:
1 Introduction
C-- is a compiler-target language. The idea is that a compiler for a high-level language translates programs
into into C--, leaving the C-- compiler to generate native code. C--’s major goals are these:
• C-- encapsulates compilation techniques that are well understood, but difficult to implement. Such
techniques include instruction selection, register allocation, instruction scheduling, and optimization
of imperative code with loops.
• C-- is a language, rather than a library (such as gcc’s RTL back end). As such, it has a concrete syntax
that can be read by people, and a semantics that is independent of any particular implementation.
• C-- is a portable assembly language. It is, by design, as low-level as possible while still concealing
details of the particular machine architecture.
• C-- is independent of both source programming language and target architecture. Its design accom-
modates a variety of source languages and leaves room for back-end optimization, all without upcalls
from the back end to the front end.
• C-- is efficient—or at least admits efficient implementation. So C-- provides almost as much flexibility
and performance (assuming a good C-- compiler) as a custom code generator.
A client of C-- is divided into two parts. The front-end compiler generates programs written in the C--
language, which the C-- compiler translates into efficient machine code. This code interoperates with the
front-end run-time system, which implements such services as garbage collection, exception dispatch, thread
scheduling, and so on. The front-end run-time system relies on mechanisms provided by the C-- run-time
system; they interact through the C-- run-time interface. This document describes the C-- language and
run-time interface. It is intended for authors who wish to write clients of the C-- system.
The C-- team has prepared some demonstration front ends that may help you learn to use C--.
• Paul Govereau’s tigerc compiler includes a compiler for Tiger (the language of Andrew Appel’s
compiler text) as well as a small run-time system with garbage collector. The tigerc compiler is
written in Objective Caml.
• Norman Ramsey’s lcc back end works with lcc to translate C into C--. It is written in C.
• Reuben Olinsky’s interpreter, which is packaged with the Quick C-- sources, includes sample run-time
clients for garbage collection and exception dispatch.
All this code is available through the C-- web site at http://www.cminusminus.org.
1.1 What C-- is not
C-- has some important non-goals:
• C-- is not an execution platform, such as the Java Virtual Machine or the .NET Common Language
Runtime. These virtual machines are extremely high-level compared to C--. Each provides a rich type
system, garbage collector, class loader, just-in-time compiler, byte-code verifier, exception-dispatch
mechanism, debugger, massive libraries, and much more besides. These may be good things, but
they clearly involve much more than encapsulating code-generation technology, and depending on your
language model, they may impose a significant penalty in both space and time.
6
• C-- is not “write-once, run-anywhere”. It conceals most architecture-specific details, such as the
number of registers, but it exposes some. In particular, C-- exposes the word size, byte order, and
alignment properties of the target architecture, for two reasons. First, to hide these details would
require introducing a great deal of complexity, inefficiency, or both—especially when the front-end
compiler needs to control the representation of its high-level data types. Second, these details are easy
to handle in a front-end compiler. Indeed, a compiler may benefit, because it can do address arithmetic
using integers instead of symbolic constants such as FloatSize and IntSize.


一个C--的例子:
图片


附件:
文件注释: The C-- Language Specification
Version 2.0
( CVS Revision 1.128 )

man2.pdf.zip [308.6 KiB]
被下载 109 次
c--.sample.png
c--.sample.png [ 51.9 KiB | 被浏览 4004 次 ]



_________________
PHP是最好的语言!不服来战!
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-01-10 14:23 
头像

注册: 2007-09-10 20:20
帖子: 1352
地址: 南京
系统: Debian
送出感谢: 0 次
接收感谢: 0 次
呵呵,学习的好地方


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-01-10 14:51 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
恩,貌似不错啊...


_________________
关注我的blog: ε==3


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-01-10 15:47 
头像

注册: 2007-02-18 19:33
帖子: 2180
地址: lyric.im
系统: OSX
送出感谢: 0 次
接收感谢: 1
存在的意义是什么?
C--的定位有点窄,而且感觉不是很有必要。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-01-11 21:57 
头像

注册: 2007-09-26 17:23
帖子: 385
地址: 云南-香格里拉
送出感谢: 0 次
接收感谢: 1
学不完了哈


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-01-12 0:13 

注册: 2008-01-08 10:28
帖子: 25
地址: 江苏南京
送出感谢: 0 次
接收感谢: 0 次
一件玩具而已。。。


_________________
身在L营心在W


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-01-12 6:58 
头像

注册: 2007-06-09 9:19
帖子: 953
地址: 上海
送出感谢: 1
接收感谢: 0 次
想学 而不敢学~怕被套进去- -!


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-01-12 10:46 

注册: 2007-03-13 14:08
帖子: 43
送出感谢: 0 次
接收感谢: 0 次
想极力贴近汇编级,还能翻译其他的语言,着实不知其所云,这些应该都是编译器做的事情吧,写个把java编译成机器码的编译器未尝不可。只要有功夫去用c之类的实现java的庞大的类库


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-01-12 11:04 
头像

注册: 2007-09-16 8:29
帖子: 14252
送出感谢: 172
接收感谢: 271
又是一堆英文,我还是看不懂,我再哭!!
:em21 :em21 :em21 :em21 :em20 :em20 :em20 :em20 :em55 :em55 :em55 :em55


_________________
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-01-12 13:09 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
这不好。像汇编了。估计不比我的汇编里面定义的宏高级。
我要搞c--的。打倒这个。


_________________
● 鸣学


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-01-13 2:03 
头像

注册: 2006-05-03 0:39
帖子: 8273
地址: المريخ
送出感谢: 0 次
接收感谢: 1
eexpress 写道:
这不好。像汇编了。估计不比我的汇编里面定义的宏高级。
我要搞c--的。打倒这个。
官方网站介绍说这其实就是一门可移植的汇编语言


_________________
PHP是最好的语言!不服来战!


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-01-13 14:58 
头像

注册: 2007-04-23 17:40
帖子: 659
送出感谢: 0 次
接收感谢: 0 次
有汇编就足够了,搞那么多飞机。


_________________

吾生也有涯,而知也无涯,以有涯随无涯,SB啊~~~~~~~~~~


页首
 用户资料  
 
13 楼 
 文章标题 : 我以前的,也简单。
帖子发表于 : 2008-01-13 15:06 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
代码:
   Cmp   Temp
   Beq   _Cpyid      ;校验和正确
   Bra   _Errid
_Newid   Lcall   Getsum,#Nc,#8   ;保存校验和到EE
   Sta   Temp
   Sta   Temp+1
   Lcall   E.Write,#Ee_Nc_Sum,#Temp,#2
_Cpyid   Lcall   Copy,#Nc,#Ucode,#8   ;第一次读入编号
Chkend   Bclr   Error,Status
   Rts


_________________
● 鸣学


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-01-17 17:14 
头像

注册: 2007-02-14 18:05
帖子: 86
地址: 上海
送出感谢: 0 次
接收感谢: 0 次
.......................
什么时候有c+-


_________________
Keep It Simple Stupid
@ghosTM55


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2008-01-23 10:56 

注册: 2006-10-12 21:31
帖子: 234
送出感谢: 0 次
接收感谢: 0 次
减减,汗~~~

这帮死老外


_________________
Peigen废话
http://peigen.info


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 26 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译