让我们用中文编程(二)之C++篇 - 自己做中文编程语言,你也行

使用C++汉语编程(附源代码,VS2005编译通过)  突然发现最近汉语编程吵得沸沸扬扬,然后忍不住去看了看他的代码,觉得很是熟悉.再说,这个凑热闹的机会自己怎能放过,于是也写了一段,感觉还不错,发出来给大家看看.看看就好了,别放在心上.PS:现在所谓的汉语编程,和我这个也差不多.   汉语编程_电话本_控制台程序.cpp#include "汉语编程核心文件.h" 定义类 列表{私有成员: 整数 编号; 字符串 姓名; 阅读详情

让我们用中文编程(二)之C++篇 - 自己做中文编程语言,你也行

作者 : Dancefire (Dancefire [at] gmail)

日期 : 2005年11月11日

由于CSDN的Blog好像对表格支持不好,我贴了几次,都导致了重复的内容。所以,为了能够贴到这里,我把表格都改变了,所以,推荐大家访问没有改过格式的连接:http://www.dancefire.org/Project/SinoProgram/ 

引言

上回书说到,用C#来进行中文编程,最后的主程序上很是有趣,没看过的客官,可以看看第一篇《让我们用中文编程》。看到有些客官,在后面说到,如果连那些关键字也能够中文化就好了。当时心中无奈,唉,谁叫C#不支持#define来替换关键字呢?在这风云变幻的年代,每一分钟都有奇迹的发生,曾经的不可能,很有可能就变成了想当然。当初的无奈,现在还是无奈么?请看下文。

 

 

 

  • 中文编程的神化

随着 117日,微软Visual C++ 2005的发布,我们关注到,VC8.0中增加了大量新的特性,包括最重要的,引入了C++/CLI,可以说是给C/C++语言历史上掀起了新的一页。作为一个方言的出现C++/CLI会有什么样的作为,却是值得大家拭目以待,是功是过,由历史来评说。但是我们也注意到,VC8.0引入了一个非常有趣的支持,VC8.0开始支持Unicode的源代码了。如同C#Java一样。如今,我们要写C++程序,已经完全允许在代码中出现Unicode编码的变量名、函数名、类名等等,并且#define也支持Unicode替换了。

 

 

 

虽然是个小变化,但是,中文编程的世界一下就变了。这使我立刻就想到,国内有些公司,在致力于炒作中文编程,细看他们的语言,无非是对现有语言把关键字替换成了中文而已,其他的改进太小了。有的是把Forth给用中文关键字包装了一下,就推出来的;还有的是把C语言用中文的关键字替换一下就推出来的。这样的语言,真的是自己的么?这样的语言真的有价值么?决定一切的不是语言而是思想!,这是已经人人共知的思想,国内的某些专家和公司竟然还在为这种伪中文编程而津津乐道,甚至有些获得了国家项目的资助。如果真的仅仅是用中文关键字来进行编程就可以改变我们国家的IT面貌的话,那大可不必投资数十万甚至上百万来做,用我下面的一个头文件就够了。

 

 

 

关键字使用中文,很简单的技术;实现一个别人已经发明的语言,也不是什么太复杂的事情(当然如果做一个100%兼容的C++这样的复杂语言的编译器还是具有相当的难度的)。真正难的应该是理解这种语言的创新思想,发现或者创造一种方法,以解决现有语言在程序设计上的存在的种种问题,这样更新或者创造出来的才是真正有用的经典之作。不用细说,大家都知道,CC++JavaC#RubyPython的诞生都分别解决了什么难题。他们用漂亮的办法解决了一直困扰程序员的问题,他们就成为了经典。而国内那些做中文编程的公司的产品呢?呵呵,也许仅仅是茶余饭后而笑柄而已。

 

 

 

不好意思,一时感慨颇多,啰里啰唆了那么多废话。下面言归正传。。。

 

 

 

  • 没有什么不可以

再细说之前,需要说一下编译器的事情。

目前我不知道还有哪个编译器能够对Unicode有良好的支持,所以,目前只有Visual C++ 2005才能够编译下面的代码,但是很幸运,原本打算卖US$49的Visual C++ 2005 Express,从现在开始,一年内是免费的,而且微软没有一年以后的收费计划,所以也许我们可以一直合法的用下去,呵呵。大家可以从微软网站直接下载,需要下载的访问下面的连接:

http://msdn.microsoft.com/vstudio/express/visualc/

下面的代码都可以在Visual C++ 2005 Express 版上编译通过。

好了,真的言归正传了。我用了一系列的#define宏和typedef,作了中文和英文关键字的替换。比如:

 

typedef int     整型;
typedef
char
   字符型;

#define
如果     if
#define 否则     else

#define 返回     return
#define 常量     const

#define 标准输出 std::cout
#define 行结束   std::endl
#define 标准输入 std::cin
#define 字符串   std::string

#define 主程序   main

经过这样处理后我们就可以写出一个最简单的中文程序:

 

整型 主程序( 整型 参数数量, 常量 字符型** 参数列表 )
{
    字符串 路人甲;
    整型   年龄;

    标准输出
<< "请输入姓名:" <<
行结束;
    标准输入
>>
路人甲;
    标准输出
<< "请输入年龄:" <<
行结束;
    标准输入
>>
年龄;

    如果(年龄
> 18
){
        标准输出
<< 路人甲 << "先生/女士,您好!祝您今天工作愉快哦。" << 行结束
;
    }否则{
        标准输出
<< 路人甲 << "小朋友,您好!祝你今天玩得开心。" << 行结束
;
    }

   返回
0
;
}

 

 

 

 程序很简单,执行后,询问你的姓名和年龄,如果你大于18岁呢,它就要对你说“Dancefire先生/女士,您好!祝您今天工作愉快哦。”,如果还不到18岁呢,就会说“Dancefire小朋友,您好!祝你今天玩得开心。”

 

这个程序似乎不够有趣。那么我再来一个有趣一些的,用到了面向对象的继承的概念,新瓶装旧酒了,前一篇文章中提到的,生物圈的例子,(既然是中文嘛,就来点中国文化特色,呵呵),

 

哦,多说一句,下面的程序一共由3个文件组成,其中2个是头文件,另外一个是源文件。三个文件都可以从我的网站下载:

http://www.dancefire.org/file/SinoCPP.zip

如果大家想自己写个中文的类玩玩,只需要#include第一个Sino.h就可以了。我已经在里面替换了大量的关键字,玩玩够了,如果还想替换其他关键字,你们自己加进去就行了,需要注意的是,这几个文件都是受GPL协议保护的,简单而言就是,大家可以随便改,只要继续保持开放就行了。

下面的是主程序:

 

//
// 作者: Dancefire    (Dancefire [at] gmail)
// 日期: 公历 二零零五年十一月十一日
//
      农历 乙酉年 丁亥月 己亥日 巳时
//
           宜 解除 修饰垣墙 冠笄 出行 馀事勿取
//
           忌 开市 动土 破土 嫁娶 安葬
//
项目: 中文C++编程测试
//
版本: 甲子
//


#include
<vector>
#include
<iostream>
#include
<string>
#include
"sino.h"
#include
"SinoTest.h"


使用 名字空间 标准库;

整型 主程序( 整型 参数数量, 常量 字符型
** 参数列表 )
{
    标准输出
<< "世界你好!" << 行结束 <<
行结束;

    使用 名字空间 中文编程;
    矢量
<生物*>
动物们;

    动物们.排到后面( 新建 鸟());
    动物们.排到后面( 新建 鱼());
    动物们.排到后面( 新建 马());
    动物们.排到后面( 新建 动物());
    动物们.排到后面( 新建 生物());

    循环(无符号整型
= 0 ; 甲 < 动物们.多少() ; ++

C++学习:0、CPP 学习概述 目录一、汇编的重要性1、学习建议2、代码本质的挖掘3、编程语言的本质区别、开发环境的搭建 路线大纲: 常用语法: 面向对象: 项目实战: 特点: 通过反汇编,通过底层来观察 C++ 的本质 CPP 的应用领域 思考一个问题:既然 C ++ 执效率这么高,为什么还要出现新的编程语言?所有地方都用 C++ 不就好了吗? 首先每一门编程语言都有自己的优缺点,都有自己的擅长的领域。 比如 python 适合数学家来进算法开发,适合分析师进数据分析,如果让数学家和分析师再学习C++ 那就太 阅读详情

相关推荐

盘点由中国人开发的编程语言

创造易语言的初衷是进中文来编写程序的实践,方便中国人以中国人的思维编写程序,并不用再去学习西方思维。OpenBlock 是可视化块编程语言,是一门希望通过将编程简化、将业务逻辑可视化的图形化编程语言语言特性上有 Erlang 和 Smalltalk 的影子,语法层面借鉴了 Scratch,使用 Blockly 作为语言前端。CovScript 是一门跨平台、开放源代码的动态类型脚本编程语言,具有高效、易懂、可靠的特点,充分吸收了现代编程语言研究的成果,与 C、C++ 等现代语言有良好的可交互性。

AI天才研究院 3万+

C++中文编程[仅供娱乐]

用#define和typedef简单把C++的一些关键和符号等定义成了中文,仅供娱乐

C/C++编程语言中文详细帮助文档

本文还有配套的精品资源,点击获取 简介:《C/C++编程语言中文帮助文档》提供C和C++语言的全面参考,包括基础语法、面向对象编程、标准库、模板、STL、内存管理、预处理器、命名空间、异常处理以及C++新标准特性等。文档采用7z格式压缩,适合所有水平的开发者使用,帮助他们掌握语言细节,提高编程能力。 1. C语言基础知识 1.1 C语言概述 C语言作为...

weixin_32661831的博客 2014

Win32:C++其实早已支持中文编程

中文编程 中文变量 中文函数名 中文文件

L251210269的专栏 4807

如何用中文编程c++

1,下载vs2017,安装好.然后配置变量. 1,LIB,2,INCLUDE,3,PATH打开注册表,环境变量.一定要注意,注册表的%变量%只支持系统变量.自己的都得自己写.我的三个变量就是因为老是写了变量,结果都不支持. 这里最新的版本与原来的不一样. vc路径:&amp;amp;amp;quot;C:/Program Files/Microsoft Visual Studio/2017/Community/VC/Tools/M...

个人进步之路 2831

C++从0开始开发自己的编程语言

目录导语取名记使用语言项目架构项目架构图项目文件结构解释器流程着手实现接口文件编写语言内存实现 导语 这是我第一次准备发文章,准备徐徐道来,慢慢推进与讲解编程语言解释器的算法和代码。 都说程序员的最大理想就是开发出自己的编程语言来,现在,我也开始完成我最大的理想——开发我属于我自己的编程语言。 阅读了许多关于自制编程语言的数据,可略感失望,感觉很多都是使用yacc/lex这些他人写好的工具生成代码...

weixin_41659551的博客 8432

C++编程语言中文完整帮助文档资料包

随着对基础语法的理解加深,可以开始探索更复杂的概念,比如函数、指针、引用、动态内存分配等。这些概念为C++的强大功能奠定了基础。以上内容将作为编程新手的启蒙,带领他们从零开始学习C++。在后续章节中,我们将会深入探讨面向对象编程等更为高级的主题。函数模板是C++中实现泛型编程的基础工具。它允许程序员编写与数据类型无关的代码,通过实例化,可以创建出针对特定数据类型工作的函数。定义一个函数模板非常直接。它使用关键字template后跟一个模板参数列表,然后是函数的定义。a : b;

weixin_30205153的博客 1154

中文编程语言的种类有哪些:探索中文编程世界的多元性

然而,随着技术的不断进步和中文编程社区的不断壮大,这些挑战将逐渐得到克服。中文编程语言起源于对编程语言本地化的需求,旨在降低编程的门槛,让更多人能够理解和使用。这些语言不仅支持中文关键词和变量名,还融入了中文的思维方式和表达习惯,使编程更加贴近中文使用者的日常语境。同时,这些语言还融入了中国文化的元素,体现了中国编程者的智慧和创新。这些语言不仅丰富了编程的多样性,更为中文使用者提供了更为直观和易于理解的编程工具。它们不仅丰富了编程的多样性,更为中文使用者提供了更为直观和易于理解的编程工具。

mjugtevfevwtfb的博客 1299

手搓中文字符编程语言

摘要:本文详细阐述了开发中文编程语言的完整流程,包括设计目标、语法设计、技术实现等关键环节。作者首先建议明确语言定位(教育/业/通用)和特性(语法风格、编程范式等),然后提出将英文关键字替换为中文、允许中文变量名等具体设计方案。在实现层面,系统讲解了从词法分析到代码生成的编译器构建步骤,并提供了Python实现的极简中文解释器示例。文章还讨论了编码处理、工具链建设等实际问题,列举了易语言等现有案例,最后指出文化适应性、性能优化等挑战。该项目兼具技术挑战和文化创新价值,为中文编程语言开发提供了实用指南。

韩鹏飞的博客 949

中文编程语言_中文编程语言编程思维

我作为一个从易语言开始学的程序员来说,我觉得我有资格谈论这个话题 我是在小学五年级的时候,因为和同学的一点攀比心理吧,开始接触到易语言,然后从此深陷其中无法自拔...... 到现在我已经学会了Python C++ Java这三门语言并应用在我的工作生活当中去,我学习Python C++ Java这三门编程语言所耗费的时间其实是很短的,为什么呢?我可以十分肯定地说,因为我曾经学过...

weixin_39729784的博客 851

常见编程语言发音指南:20 大热门语言

常见编程语言发音

全栈程序员的开发日常 5754

FreeRTOS上线中文版网页,C++获得 2022 年度编程语言

关注+星标公众号,不错过精彩内容作者 |strongerHuang微信公众号 |strongerHuang嵌入式资讯第02期来了:一、FreeRTOS 网站简体中文版上线前不久,FreeRTOS上线了中文版网页,极大方便了英文不好的开发者。今后,请不要以英文不好为借口了,觉得RTOS太难学了。可见,FreeRTOS的东家亚马逊,比较重视中国这片市场。、NXP推出 i.MX 95系列处理器1月...

strongerHuang 2956

有趣的中文编程语言

我自认为本文不是恶搞,让我们本着严肃认真的精神来审视这些中文编程语言。 易语言语言可以说是中文编程语言的老大,拥有独立的编译器。易语言并不是把现存的编程工具进表面汉化而成的,和其他国外语言相比,"易语言"最大的不同是彻底中文化,且拥有自下而上的全部自主知识产权。 易语言的全新版本叫“易语言.飞扬”,包含垃圾收集机制,是完全面向对象的中文编程语言

leiyinsu的专栏 2855

论文2:CNSH - 编译到C++中文原生编程语言

CNSH中文编程语言:技术平权的创新实践 本文提出CNSH(中文Shell)——首个完整编译到C++中文原生编程语言,旨在打破英语霸权,实现技术平权。核心贡献包括:1)基于汉语自然语法结构的完整编程语法;2)零运时开销的C++转译架构;3)集成龙魂DNA溯源系统;4)实证显示中文用户学习效率提升2.3倍。研究证明,语言多样性不仅是便利问题,更是确保技术发展不偏袒特定语言群体的公平性问题。CNSH特别有助于降低老年人、农村和经济弱势群体的技术门槛,为解决数字鸿沟提供新思路。

龍芯北辰·UID9622|退伍老兵,从零学习AI、开源与自动化。用中文语义、DNA追溯、三色审计,做普通人也能用的主权AI实验。 647

C++编程语言特别版教程(中文版)深度解析

C++是一种静态类型、编译式、通用的编程语言,它支持过程化编程、面向对象编程以及泛型编程。作为一种高效、灵活的语言C++广泛应用于软件开发领域,包括操作系统、游戏开发、实时物理模拟等。在C++中,类是一种用户定义的类型,它封装了数据和操作数据的函数。定义一个类就是创建一个新的数据类型,它允许我们创建具有特定属性和为的对象。类的定义以关键字class开始,后跟类名和类体。类体被大括号{}包围,并定义了类的成员,包括数据成员和成员函数。

weixin_35756373的博客 929

st编程语言中文版手册_你们要的各类编程语言书籍推荐

说明:1、每一个方向可能推荐不止一本,只选一本即可。2、有的书非常详细,底层的一些东西解释的很全面,这种时候没有必要去纠结里面的细节,可以先按照路线往后学,都弄懂了再回来研究这些细节。3、不管学什么,怎么学,一定记得多敲代码。4、初学时以顿开的视频为主,书作为参考,这样效果更佳哦。5、这里列举出来的只是常规的一些推荐,有的可能不是最新版,小伙伴们根据自己的需要来选择。6、有的数最新版推出的时间可能...

weixin_39865952的博客 2025
上一篇: C#的数据库应用如何解决内存消耗太大的问题呢?
下一篇: [翻译]在Visual C++ Express 2005中使用WTL
DanceFire
博客等级 码龄25年 91粉丝 42原创
评论 27
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值