CSP++ 计划书
CSP++ 计划书
CSP++ 是C++Server Page的简称,没听说过?那是肯定的,这是我准备发起的一个C++开源项目,本项目致力于开发一个以C++为基础的Web 应用程序开发体系。C++是一个强大的语言,但是却没有一个基于C++的Web 应用程序开发体系,有的只是JSP,ASP.NET,这些都是基于解释语言的。C++是一种高效的语言,而服务器需要高效的程序,但是为什么C++却没有在其中发挥其应有的作用列?我想主要原因有两个,一个是厂商的策略(这个我们管不了),一个是安全原因。确实C++是个强大的语言,以致不会有人让人随意上传代码到服务器,然后让服务器去编译执行。那我们是不是可以让这段代码编译后安全的在服务器运行列?我想答案是可以的,首先因为我的目标是操作系统和平台的可移植性,所以所有的代码都是平台无关,操作系统无关,也就是说我只是用最基本的C++语言元素(不支持头文件和与操作系统相关的函数,仅有基本的库可供链接)和一些像JSP,ASP.NET一样的内置对象,总之就是在保证安全的基础上提供尽可能强大的功能。当然只是这样还是不够的,所以我的目标还要把这段代码放在虚拟机(不是解释运行的那种,而是使用CPU直接运行的那种)中运行。这个虚拟机运行一个极小化的操作系统,视需要仅提供有限的文件访问,或者是不能进行文件访问,提供中介的数据库访问能力,不模拟任何硬件,也就是说在这个编译后的程序的内存空间中除了一些可以保证安全的公共链接库以外,就不让他存在其他任何东西(就我的安全知识而言,这样应该可以保证安全的)。通过这些机制我们可以提供操作系统和平台的可移植性,在相同平台下仅改变操作系统时我们甚至可以不用重新编译。
我对本项目的计划如下,对于编译器方面长远目标是开发针对本项目优化的编译器,近期目标是开发一个针对本项目的语法检查器,对C++源文件进行一些相关检查后就把C++源文件送给已有的智能C++编译器。对于虚拟机方面先开发个满足最小集合的Web 应用程序需要的简单虚拟机,长远是实现个可扩展的,可定制的与本项目紧密结合的高效虚拟机,在Web服务器方面近期也是使用已有的。
以上是本项目的基本思想,由于本人的能力,精力有限。现在公布我的整体思想,以寻求各位高手的参与,大家共同努力先搞一个在X86平台,WIN32操作系统上的实现。欢迎各位有志之士多多联系我,t10599762@163.com。玩C++的高手多,大家共同努力为C++做点贡献吧!以上仅是我个人的思想,肯定存在很多不足,希望大家共同努力首先把本项目的基本思想先做个优化。我个人认为这个方案有很多优点,需求也不小,是值得我们为他付出的。