對這主題有點興趣想 follow 下去, 希望提供連結 :-)
环境允许的话当然会尊重大家用简体的.
例如下面是未完成的扫雷的游戏的界面部分:
从 界面库 载入 *
从 消息对话框库 载入 *
从 文件对话框库 载入 *
从 颜色对话框库 载入 *
从 便捷对话框库 载入 *
根 = 根窗口()
按钮字典 = {}
定义 产生按钮事件(按钮坐标):
定义 按钮事件():
全局变量 按钮字典
按钮字典[按钮坐标].配置(背景颜色='white',状态=无效)
返回 按钮事件
定义 显示关于对话框():
关于对话框 = 窗口()
标签(关于对话框 , 文字="About Mine").安装()
临时容器 = 容器(根)
临时容器.安装(边=上)
标签(临时容器 , 文字="Mine!!!!").安装(边=左)
按钮(临时容器 , 文字="about" ,
命令=显示关于对话框).安装(边=左)
取 列 自 范围(10):
临时容器 = 容器(根)
临时容器.安装(边=左)
取 行 自 范围(10):
临时按钮 = 按钮(临时容器 , 宽度=2 , 高度=1 ,
命令=产生按钮事件((行,列)) )
临时按钮.安装(边=上)
按钮字典[(行,列)] = 临时按钮
界面主循环()
它将被转换为:
from Tkinter import *
from tkMessageBox import *
from tkFileDialog import *
from tkColorChooser import *
from tkSimpleDialog import *
s0 = Tk()
s1 = {}
def s2(s3):
def s4():
global s1
s1[s3].config(bg='white',state=DISABLED)
return s4
def s5():
s6 = Toplevel()
Label(s6 , text="About Mine").pack()
s7 = Frame(s0)
s7.pack(side=TOP)
Label(s7 , text="Mine!!!!").pack(side=LEFT)
Button(s7 , text="about" , command=s5).pack(side=LEFT)
for s8 in range(10):
s7 = Frame(s0)
s7.pack(side=LEFT)
for s9 in range(10):
s10 = Button(s7 , width=2 , height=1 , command=s2((s9,s8)) )
s10.pack(side=TOP)
s1[(s9,s8)] = s10
mainloop()
如果出错了的话,再把出错信息中的s0,
s1转换回汉字,便于调试。
这样,一个文件的程序可以全部用汉语写。反正我是教入门,所有的程序都放在一个文件中就行了。
现在问题是没有很好的编辑器,前段时间好不容易用ulipad可以高亮度显示汉语了,可是运行速度比较慢,就放弃了。理想编辑器如果能有以下功能就好了:
1. 高亮度显示,
自动完成汉语单词,并且可以提示此汉语单词转换后的英文单词以及相关的说明,鼠标移动上去就显示。
2. 可以折叠程序快
3.
可以识别自定义的汉语的变量名,并且可以手工给变量名添加注释和翻译后的英文。
... ...
2006.9月陳昌江(感謝張正一等人協助校稿)
看吧,台湾人写了些什么狗屁文章.......
台湾算什么 ?
老一代人不认输给了共产党,,年轻一代又是垃圾成群,,连李敖这样的文化人,都伦为不是个东西,,台湾算个什么呀
?
--
I like python!
UliPad <<The Python Editor>>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou
可以找个地方共享一下代码吗?
语法可以自行定义这点可能是关键,
有点像写好脚本后用 compiler
编译成中间码再执行的过程.
透过这种方式好像可以蛮轻量地实现中文编程的 :-)
中文编程起码对想用来编游戏脚本的人来说是个福音,
用来宣传也很不赖.
可以把程式写成周星驰式对白应该也很有趣.
希望有一天有人能弄个中文的 inform7
http://inet6.blogspot.com/2006/10/inform-7.html
PS: 只要语法可以容易地自行定义,
语法不像中文这点总会有用通达中文的人有好的想法能改进.
老大啊,,是有人先骂人啊,,真是的.
怎么又是一个有火气的???
# -*- coding: utf-8 -*-
from pyparsing import *
import os
import ConfigParser
import sys
pp = os.path.split(sys.argv[0])
os.chdir(pp[0])
worddict = {}
inifiles = [x for x in os.listdir(".") if x.endswith(".ini")]
for f in inifiles:
conf = ConfigParser.ConfigParser()
conf.read(f)
sects = conf.sections()
for sect in sects:
for k, v in conf.items(sect):
if worddict.has_key(k):
print "already has key: %s, %s" % (sect, k)
else:
worddict[k] = v
replacedict = {
"(":"(",
")":")",
"。":".",
""":'"',
""":'"',
"'":"'",
"'":"'",
",":",",
":":":",
}
vnum = 0
def convertToEnglish(s,l,t):
global vnum
tmp = t[0].encode("utf8")
if not worddict.has_key(tmp):
worddict[tmp] = "s" + str(vnum)
vnum += 1
english = worddict[tmp]
return english.decode("utf8")
chineseChars = srange(r"[\0x0080-\0xfe00]")
chineseWord = Word(chineseChars)
chineseWord.setParseAction(convertToEnglish)
pythonWord = dblQuotedString | chineseWord
test = file(sys.argv[1]).read()
if test.startswith("\xef\xbb\xbf"):
test = test[3:]
for k, v in replacedict.items():
test = test.replace(k,v)
utest = test.decode("utf8")
result = pythonWord.transformString(utest)
result = result.encode("gb2312")
if len(sys.argv)>=3:
file(sys.argv[2],"w").write(result)
try:
exec result
except Exception, e:
s = str(e)
print s
for k, v in worddict.items():
if "'" + v + "'" in s:
print unicode(k,"utf8"), v
想让大多数不是程序员的人生产内容,
就得提供方便的工具(例如 internet 上的 Blog)
, 另外同样拿游戏作例子,
日本游戏的编辑器都可以用日语了,
为什么却不建议编游戏脚本的人用中文呢 :-)
要民粹化一点的话, 用 if/else/for/while
语句编程也是完全没有中国特色的,
直接对应的结果自然有点不伦不类.
但如果很少用上这些流程切换语句的话(小程式, 脚本),
用中文编程还是有点意思的.
limodou 寫道:
再將我覺得中文編程還是有用的想法解釋地仔細一點:
舉個例子:
有些人一點都不想學編程, 但是想在網路上發表文章,
這些人不好好學 HTML, Web Server 架設, 動態語言,
卻非要在網上寫 Blog,
這樣能學好網頁設計嗎?
答案可能是不行,
但是他們是不是已經達成他們想在網路上發表文章的目的了呢?
HYRY 寫道:
我不管别人怎么学,想学成什么样,反正我也不会去用中文来编程,虽然我打字用五笔。谁想学谁学去吧。走自已的路,让别人说去吧。共勉之。
但對中文的特用編程(DSL, 腳本)感覺還是很有發展的.
像 photoshop 之類的程式裡可以嵌入 python 的中文編程
plugin 來做一些 glue 的事.
例如網頁繪圖程式, 網站上如果可以下
"""
如果圖片.大小 < (50, 50):
圖片.放大(長*2, 寬*2)
圖片.模糊(程度 = 5)
"""
這樣的命令,
或是 linux 上可以用 python 寫中文的 shell script
來管理電腦, 那不是很酷的事嗎?
[内部函数]
范围=range
文=str
字符串=str
列表=list
整数=int
小数=float
长度=len
输入字符串=raw_input
[列表方法]
追加=append
[字典方法]
有关键字=has_key
关键字列表=keys
值列表=values
项目列表=items
[字符串方法]
结束为=endswith
开始为=startswith
是数字=isdigit
[随机数库]
随机数库=random
随机数=random
随机整数=randrange
这个程序要运行还需要转换的词库,在程序相同的目录下放上词库的ini文件就可以了,例如把下面的文字复制下来储存到和程序一个目录下的words.ini文件中,所有的编码都要用utf-8.
[关键字]
若=if
如果=if
否则如果=elif
否则=else
当=while
打印=print
取=for
在=in
自=in
定义=def
载入=import
从=from
试运行=try
错误处理=except
等于===
不等于=!=
返回=return
继续=continue
中断=break
定义=def
全局变量=global
[内部函数]
范围=range
文=str
字符串=str
列表=list
整数=int
小数=float
长度=len
输入字符串=raw_input
[列表方法]
追加=append
[字典方法]
有关键字=has_key
关键字列表=keys
值列表=values
项目列表=items
[字符串方法]
结束为=endswith
开始为=startswith
是数字=isdigit
[随机数库]
随机数库=random
随机数=random
随机整数=randrange
"ygao 写道:
> 不过你别看这个小程序既没有实用价值也没有技术含量,
> 但是在我的实际教学中间还是挺有用的.
毕竟在中国受过16年正规教育的人并不多,每100人大学生的比例还是非常低的;
> 至少现在学生们看以前的程序不需要总去查英文单词了.
> 而且通过经常熟悉上面的字典,也记住了不少英文单词.
但是!学习编程,不是为编程而编程的,
而是要学习好的编辑思维风格,
理解先进的软件工程概念,
进而可以独立的,写出靠谱的程序/工具/应用模块等等;
成为团队中的动力,或是解决自个儿工作学习中的问题,
这点上,易语言以VB为基础是没有谱的,
中蟒以Python 为基础是有前途的,
但是,想推广有两大阻力:
1. 认定中文无法编程的广大被M$等等巨鳄联合中国教育洗过脑的"程序员们";
2. 永远没有远见的相关领导们;
其中前者的阻力是发自内心的,是更加可怕的………………
但是,再根本的原因,还是CPU等等基础硬件,从根本上就不支持中文,
早年台湾弄的全中文内核系统夭折后,
中文基本上就没有了真正好用的平台,
仅仅输入法到现在都没有很好的解决方案…………
语言…………难哪,
不过,总要有人来尝试的!
http://wiki.woodpecker.org.cn/moin/ChinesePython/WhyChineseProgram
--
'''Time is unimportant, only life important!
blog@ http://blog.zoomquiet.org/pyblosxom/
wiki@ http://wiki.woodpecker.org.cn/moin/ZoomQuiet
douban@ http://www.douban.com/people/zoomq/
____________________________________
Please use OpenOffice.org to replace M$ office.
http://zh.openoffice.org
Please use 7-zip to replace WinRAR/WinZip.
http://7-zip.org/zh-cn/
You can get the truely Freedom from software.
'''
>中文基本上就没有了真正好用的平台,
>仅仅输入法到现在都没有很好的解决方案............
正好我有个学生五笔输入如飞,
比我打拼音当然快,比我打英文也快. :-)
所以说是会者不难, 你让她学英语很难,
但是让她打中文却很快.
如果真的有好的中文编程语言,
就算花上几个月练习五笔也没有什么问题吧,
至少比从头开始学英语快.
1、你的学生年龄有多大?
2、他们为什么要学习编程?
3、学生毕业后,能否把你所教的编程序的技能用在实在的工作中去?
HYRY wrote::
--
Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn
从数学, 逻辑, 商用,
或工作机会的角度来看中文编程这件事情是不是站错了位置?
.
中文编程没有工作问题,
因为根本还达不到规模或稳定度.
但是,
如果你将中文编程当作学习逻辑思考的一个途径如何?
以前西方学校的教授们曾发明了无数语言, logo,
abc(python 前身), fortran, pascal....的原始目的
都是教学用, 其目的是加强学生的数学逻辑概念.
并不是直接拿来工作. 是后来发展的语言(Java..)更实用,
才能直接用在工作.
如果中文编程能教会众人基本的数学逻辑概念,
或能完成手边的简单工作,
那我想它已经很好地达到了目的.
我会把中文编程视作一个特用语言(DSL)或脚本转换器来用,
对华人来说, 应用程式有中文介面确实亲近很多,
若可以用中文学习语言也是一个吸引人的地方.
以长远角度看, 学编程的第一个条件是英文的话,
华人小孩子学习电脑或编程时间就这样硬生生被延迟了,
比起同岁的英语为母语的小孩已能知道 if, else 的意义,
华人的小孩连"之乎者也"也不知(中华文化),
更别提编程(可能还不会英文).
那大家也不用学什么中文, 孩子出生就丢去学英文,
这样华人的计算机水平会提高的快些.
(这中间颇有语病, 也不全是事实,
但大家应能明白我想传达的意思)
从提中文编程开始, 我想大家应该要有一个讨论前提:
不要假设所有的人都是为了"学编程"而学编程,
(中文编程也可以视为一种工具,
教的人想教的可能只是逻辑概念)
不要假设这些使用或学习的人都是计算机系或理工科系
不要假设这些人会英文,
会英文也不见得能在学习时顶用.
PS: 请不要参杂民粹讨论, 于主题无益
On Dec 22, 8:02 pm, "Yung-Yu Chen" <yung...@gmail.com> wrote:
> On 12/22/06, gaso...@gmail.com <gaso...@gmail.com> wrote:
>
>
>
>
>
> > > 应该说特用语言 (DSL, Domain Specific Language)
> > > 总是有市场的 (最常见的例子就是 Ruby on Rails),
> > > 用英文(鸟语? :-P)单复数约定来表示表 (Table) 的绑定.
>
> > > 但如果很少用上这些流程切换语句的话(小程式, 脚本),
> > > 用中文编程还是有点意思的.
>
> > > 就象是学英语一样,不好好学音标,非要用中文来标注,这样能学好吗?
>
> > 再將我覺得中文編程還是有用的想法解釋地仔細一點:
>
> > 舉個例子:
> > 有些人一點都不想學編程, 但是想在網路上發表文章,
> > 這些人不好好學 HTML, Web Server 架設, 動態語言,
> > 卻非要在網上寫 Blog,
> > 這樣能學好網頁設計嗎?
>
> > 答案可能是不行,
> > 但是他們是不是已經達成他們想在網路上發表文章的目的了呢?我也是討厭用中文寫程式的一份子;甚至討厭寫中文註解 :p
没有冒犯的意思, 但我觉得这个逻辑相当奇怪,
还没人使用就开始害怕大家真的使用?
為什麼要為这种事憂心呢? :-P
前面的程序不像中蟒是完全重新编译的语言,
而可以当作一个个别的 python module 来看.
想要中文编程就拿这个 module 修改, 所有改动都在 module
附近, 与一般开发无异.
如果中文编程里, "关键字"
能作为程式的一部分约定公开而且可自定义的话,
虽然仍然不适合大规模的写程序, 但是拿来做 python
传统擅长的 scripting , shell 等也够吧? :-)
> btw:
> 这个也太水了,不应该被充分讨论,也不是几句话就能解决问题的。
>
有人觉得有趣的 python 相关议题,
也不是几句话就能解决的事, 不是才更该讨论吗 :-)
没有人想发言才表示大家并不关心这议题.
>
> 这样子不行的。如果大家真用了,有问题找谁,岂不是误了别人。如果是大规模的写程序,这怎么行,这只是原因之一。
>
没有冒犯的意思, 但我觉得这个逻辑相当奇怪,
还没人使用就开始害怕大家真的使用?
為什麼要為这种事憂心呢? :-P
前面的程序不像中蟒是完全重新编译的语言,
而可以当作一个个别的 python module 来看.
想要中文编程就拿这个 module 修改, 所有改动都在 module
附近, 与一般开发无异.
如果中文编程里, "关键字"
能作为程式的一部分约定公开而且可自定义的话,
虽然仍然不适合大规模的写程序, 但是拿来做 python
传统擅长的 scripting , shell 等也够吧? :-)
> btw:
> 这个也太水了,不应该被充分讨论,也不是几句话就能解决问题的。
>
有人觉得有趣的 python 相关议题,
也不是几句话就能解决的事, 不是才更该讨论吗 :-)
没有人想发言才表示大家并不关心这议题.
只不对我对中文化编程认为这种值不值其实还是与语言之间的争论一样,属于意识形态的问题。每个人的思维角度不同,深度广度不同,很难统一。
下面是forth源程序,可以下载4th运行
\ vc8废柴.4th
\ 下面定义word。啥是word?你就当定义函数好了
\ 每一个冒号后面紧跟着的就是一个word
: 求两数和 + . cr ;
: N+M=L OVER OVER SWAP . ." +" SPACE . ." =" SPACE + . CR ;
: 的和是? OVER OVER SWAP . ." +" SPACE . ." 的和是" SPACE + . CR
;
\ ^请注意这里是英文的问号
: 小时 3600 * ;
: 分 60 * ;
: 秒 ;
: 是几秒? * * ." 笨蛋,这么简单的题都不会,是" . ."
秒!" CR ;
\ ^请注意这里是中文的问号
\ 注意下面3个word的名字
: $^$^%#^#%# ." 不要以为这些字符我不认识,vc8算啥? "
CR ;
: ¥※%※...... ." 你抓狂了?!娃哈哈...... " CR ;
: :D ."
套用某鼓吹函数编程的文章的说法,你们这些vc8废柴,
我--Forth--自打上世纪6、70年代出生以来就支持任意字符做word名了
" CR ;
\ 下面使用定义好的word
255 256 求两数和
1 2 N+M=L
1 2 的和是?
1 小时 5 分 20 秒 是几秒?
CR
\ 别忘了,下面这两个也是我们定义的word
$^$^%#^#%#
¥※%※......
CR
:D \ 这个也是我们定义的word
下面执行这段程序:
4th.exe cx vc8废柴.4th
输出:
4tH System V4.5a - (c) 1994,2003 HanSoft & Partners
511
1 + 2 = 3
1 + 2 的和是 3
笨蛋,这么简单的题都不会,是21600000 秒!
不要以为这些字符我不认识,vc8算啥?
你抓狂了?!娃哈哈......
套用某鼓吹函数编程的文章的说法,你们这些vc8废柴,
我--Forth--自打上世纪6、70年代出生以来就支持任意字符做word名
下面把该程序转化成C代码,这样可以编译成独立的可执行文件了
c:\4th\4th.exe csv vc8废柴.4th vc8废柴.hx
c:\4th\4th.exe lg vc8废柴.hx vc8废柴.c
使用gcc version 2.95.3 20010315/djgpp (release)编译
gcc vc8废柴.c -Lc:\4th -l4th -o vc8废柴
"vc8废柴.4th"大小是841字节,输出的"vc8废柴.exe"大小为141,498字节,strip后是77,824字节,upx
-9压缩后有39,692字节
自商周甲骨以至金文,再由篆而隶,由隶而楷,繁体字完整袭承了中华文明最精华的文字血脉。简体始自蒙元入主中土。蒙古贵族不习汉字繁冗,开始推行简体,至明正统复兴,再于近世,为文化普及,扫盲兴教,才推行简体。再没有搞清何谓中国,何谓中华文化之前,最好不要随便打着民族国家的旗号排斥同胞,不知邓公地下有知,该做何等感慨?
在06-12-26, 张成 <czhang...@gmail.com> 写道:
在 2006-12-22,下午4:35,小河 写道:
> 最好少用,别用繁体,,,是中国人的,就自觉点.......
咱们论坛有"最好少用,别用繁体"的规定吗?
如果没有,凭什么不允许别人使用繁体呢,又不是看不懂。
而且,有什么理由指责用繁体的人就不是中国人?
你可以带着你的有色眼镜和狭义民族主义去相应的论坛发表言论,但这里是技术
论坛,狭义民族主义是不被欢迎的。
-张成
Gentoo/PostgreSQL/Lighttpd/Python/Django/jQuery Powered
(Web) http://www.aragonconsultinggroup.com
(Blog) http://my.donews.com/czhang/
爱发现 (http://www.ifaxian.com)
第一个 Django 开发的中文网站 ;-)
爱游网 ( http://www.aiyo.cn)
我们的第二个 Django 作品
--
欢迎访问:
http://blog.csdn.net/ccat
刘鑫
March.Liu