亲密数编程语言的定位

亲密数编程语言是试验性质的完全基于汉语的计算机编程语言。我只是闲时用她来探索一下汉语编程,学习一下相关知识,巩固一下个人技能,没有想着用它做严肃的事。我觉得也不该用汉语编程语言做严肃的事情,那些严肃的事情还是留给工业上成熟的语言来做吧。因为能力所限,我也不可能设计一个完美完善的编程语言如Ruby、Python、Go、C、Rust、Julia、Kotlin、Haskell、Clojure、Elixir等。我只能尽量减化。简化的结果就是亲密数编程语言和Forth语言比较相似,是基于栈的编程语言。大部分语句操作都是围绕着栈,大部分表达式都采用容易使用栈来实现的逆波兰表达式。而且她只能解释执行,不能编译。另外一个简化就是亲密数编程语言的变量和关键字只能包含一个字。我希望她最终可以做到Logo语言能达到的事就满足了。

我听说过的汉语编程语言有易语言、习语言、丙正正、中莽等。除了用中文编程外,易语言好像和VB比较像,习语言则对应C语言,丙正正对应C++,中莽对应Python。说实话这些语言我都没怎么用过。因为真正的程序员都想用专业的通用的语言来编程,就像大家喜欢用电脑而不是机顶盒上网一样。我认为认识50个单词的人具有初中文化水平就最好学英文编程语言。

对于中文编程大家一定不要做的事就是把宣传口号定为“中国人自己的编程语言”。在科技和工程领域还是采用世界通用标准比较好,易于交流,而不要自己制造壁垒,自绝于全世界。在科技和工程领域还是少打民族自豪感之类的感情牌,踏实做好工作比较好。日本人松本行弘设计的Ruby语言也没有用平假名片假名,爱立信设计的Erlang也没有用瑞典语,他们都是采用英语。

那我搞个亲密数编程语言干什么呢?除了满足我自己外,我觉得把目标定为让小朋友或大朋友多个玩具比较可行些,这是我对亲密数编程语言的定位。

你可以用这个玩具做哪些有趣的事呢?你可以把她当计算器用,加减乘除余她都会。你可以很容易把”去你的“或者”我爱你“在屏幕上显示一千遍。你可以用看似混乱无意义的一段汉字的罗列生成也许比较好看的图画。怎么玩看你的想象力了。

我见过的汉语编程语言大多是对英文编程语言的汉化,人家有个IF咱家就有个如果,人家有个括号咱家也有个括号。这样可行,但会水土不服。毕竟英文是一维的字母语言,中文是二维的字母语言。(把偏旁部首看作字母。吴军博士的《数学之美》中有此观点。)汉语和英语不同,汉语编程应该和英语编程有些不同才对。

英文句子的单词都用空格分开,英文中的符号很丰富,圆括号、方括号、花括号等应有尽有,所以英文编程语言用空格分开关键字和使用这些符号很自然。中文大家都不习惯把字词用空白分开。中文的标点符号都是后来加的,古文中甚至句逗都没有。所以我觉得自然的中文编程语言应该也最好不使用空白分词,并且越少使用标点符号越好。这当然给词法分析和语法分析等带来了非常大的难度,所以我只好简化,选择亲密数编程语言中关键字和操作都是单字。

即便中文编程语言要使用符号,可要知道中文中很多符号都是又有全角的又有半角的。大多数人都不太容易很快辨认出全角符号和半角符号的差别,比如”;”和“;”,”:”和”:“。即使能够辨认,在编程中不断切换全角半角状态也是恼火的事情。由此我认为中文编程最好不因全角半角符号给用户带来困惑。在亲密数编程语言中,我选择放宽对程序限制。比如全角的数字0123456789、半角的数字0123456789、甚至中文数字〇一二三四五六七八九和中文大写数字零壹贰叁肆伍陆柒捌玖她都能够辨认。

总结一下。亲密数编程语言只是对中文编程的一个探索,不适合做严肃的事情。她支持的数据结构和语法都简单,不适合做复杂的事情。她比较适合做小朋友或大朋友的玩具。

时间: 2024-10-17 06:50:21

亲密数编程语言的定位的相关文章

亲密数编程语言旋风式的介绍

为什么要学编程 你好世界 算数运算 操作和查看栈 获取帮助 数据类型 控制语句 重复 分支 循环 定义关键字 画图 坐标系 基本的画图命令 鳖图 结束语 为什么要学编程 这里我要引用一段文字. "人类学语言时,学的不仅是听还有说:学字时,学的不仅是读还有写:而现在随着我们向一个越来越数字化的世界迈进,我们也不仅应该学会如何使用程序,还要学会如何开发程序.在未来,面对着一个高度程序化的世界,如果你不能开发软件,那么你将变成软件.就是这么简单:要么编程,要么被编程(Program or Be Pro

亲密数

题目: 如果整数A的全部因子(包括1,不包括A本身)之和等于B,并且整数B的全部因子(包括1,不包括B本身)之和等于A,,则称整数A和B为亲密数.求解3000以内的全部亲密数. #include <stdio.h> #include <string.h> int factor_sum(int n) // 计算n的因子和 { int i; int sum = 0; for( i=1; i<n ; i++) if( n%i == 0 ) sum += i; return sum;

5.20亲密数

Q:若整数A的全部因子(包括1,不包括本身)之和等于B,并且整数B的全部因子之和等于A,则称A与B是亲密数.求解3000以内的全部亲密数. 思路:先将1~3000以内所有数的全部因子之和算出来,存入到数组x[]中,这样x[i]中存放的是i的因子之和,寻找{1,2,--3000}范围中所有的亲密数的算法          如下: for(i=1;i<=3000;i++) //将1~3000所有数的因子和 放在一个数组x[1,2^3000]中 if(i没找到其亲密数,即i在集合B中) { for(j

亲密数对、递归求逆

/* * @Issue: 亲密数对问题:从键盘输入正整数 M 和 N(M<N),输出 M 和 N 之间所有的亲密数对. 亲密数对的定义如下:两个正整数 x 和 y,若 x 的所有因子之和(不包括 x 本身)等于 y, 并且 y 的所有因子之和(不包括 y 本身)等于 x,则 x 和 y 为亲密数对. * @Author: 一届书生 * @LastEditTime: 2020-02-21 10:04:41 */ #include<iostream> using namespace std;

逆波兰

波兰(Poland)是个了不起的国家.元素周期表中的放射性元素钋(Po),是居里夫人发现的,是以她的祖国波兰命名的.在计算机科学中常用到的波兰表达式(Polish Notation).逆波兰表达式(Reverse Polish Notation)也是以波兰命名的.中国也是个了不起的国家,我知道的中国剩余定理(Chinese remainder theorem)是以中国冠名的.其他以中国冠名的物件有中国结.中国龙(Chinese Dragon).中国梦.中国模式.中国特色的社会主义等.嗯,今天不说

《Swift编程语言教程》中文翻译及读书笔记page21

<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 第21页 1 swift作为一门语言对的新老语言的继承与扩展 本页主要内容是简要介绍了一下swift编程语言的定位.拥有自己的数据类型int.float.string等数据类型外,swift还具有array.dict等数据类型. 2 引入了tuple元组数据类型 特别说明的是在swift语言里引入了oc和c没有的tuple元组数

算法15---数论2---亲密数

算法16---数论2---亲密数 如果整数a的因子和等于整数b,整数b的因子和等于整数a,因子包括1但不包括本身,且a不等于b,则称a和b为亲密数对. 1 /* 2 题目:亲密数 3 author taoliu——alex 2016.10 4 5 主要实现两种 6 1 判断两个数是不是亲密数. 7 2 找出一定范围内的亲密数. 8 9 */ 10 11 12 #include <stdio.h> 13 #include <stdlib.h> 14 15 int friendnum(

《Swift编程语言》中文翻译及读书笔记page21

·<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 第21页 1 swift作为一门语言对的新老语言的继承与扩展 本页主要内容是简要介绍了一下swift编程语言的定位.拥有自己的数据类型int.float.string等数据类型外,swift还具有array.dict等数据类型. 2 引入了tuple元组数据类型 特别说明的是在swift语言里引入了oc和c没有的tuple元组

百度地图总结第三篇之定位(我的位置)

前言: 使用百度定位SDK获取对应的位置信息,然后利用地图SDK中的接口.您能够在地 在这里提示一下,假设是在一个project中同一时候使用定位的SDK和百度地图SDK.能够共同使用一个key.假设新创建project,那么就要去又一次申请key了.申请方式一样.如有疑问能够看看百度地图总结第一篇–环境集成和Hello Baidu_Map实现 集成定位SDK: 然后我们看下集成文档,下载对应的定位SDK,解压出来,我们把须要的jar包加入到libs文件夹下(BaiduLBS_Android.j