主题:【原创】三年级也可以学编程 -- 月色溶溶
VBA在微软Office套件里的Word,Excel,Access等产品里都可以使用,功能强大,而且效果比较直观,容易做出比较实用的工具。但是VBA本身似乎已经被微软抛弃,现在已经进化成更强大的VSTO,后者支持VB.Net和C#,可以看成是专业的Visual Studio的简化版,自带编译器和图形开发界面,如果只是了解编程的化这两个已经足够了,学完后对命令式编程和面向对象都有了基本的认识,进可攻退可守。
另一个语言是OZ(就是《绿野仙踪》里的奥兹国的那个“奥兹”)。推荐的理由是这个语言是比较少见的多范式语言。支持目前几乎所有的编程范式和特性,网上有个总结:
函数型语言(词法域 第一类过程 模式匹配 第一类统一语法),lazy,高阶(可实现非递归的循环),尾递归,描述式编程
面向对象(状态 Stateful/抽象数据类型 多重继承),
并行(多线程)(dataflow(数据流)线程 动态 连续 互影响),
约束编程和逻辑推理(逻辑变量 分离结构 可编程搜索策略),人工智能,
分布式(网络透明的分布式运算 组件编程 自动连接自动断线 共享变量/对象/类/过程),
网络编程,无状态数据,
安全,动态类型,异常处理,内存管理,交互的IDE
多用途语言(交互的应用程序,GUI窗口程序,移动客户应用程序,Separation of Concerns (Aspects),跨平台,扩展dll,....)
举个约束求解的例子(摘自网络):
X 属于 [1 11]
Y 属于 [12 30]
求X Y使得满足
X+Y=25
X*Y=150
条件的X和Y。
程序如下:
declare X Y in
X :: 1#11
Y :: 12#30
X+Y =: 25
X*Y =: 150
{Show [X Y] }
据说还有解决爱因斯坦五色房子的OZ程序,不过一时找不到。
俺推荐这种语言的理由是,对于小孩子来说,过早学习C这类工业用语言有害无益,目前主流语言基本就是命令式编程+面向对象,而实际上编程远远不止这两种思想。而且这类语言是为工业化设计的,容易陷进细节的陷阱而学不到背后的思想,限制小孩的创造力。而OZ语言可以按照需要进行取舍,不管是简单的还是复杂的,需要哪块学那块,学起来也比较有趣味,甚至可以自己添加关键字甚至定义一门新的语言(这点难度比较高,不过相对自己从头写应该容易许多,因为OZ和大部分主流语言不同,是基于核心语言的思想开发的,扩展起来相对比较容易)。
MOZART是OZ语言的一个实现,自带开发环境,网站是http://www.mozart-oz.org/
遗憾的是MOZART的中文资料非常少,国内也很少人用(估计知道的都很少),如果懂英文的话配上《Concepts,Techniques and Models of Computer Programming》这本教材就完美了(据说是大名鼎鼎MIT的SICP后继,SICP这门课据说已经停止了)。
- 相关回复 上下关系8
🙂我在Linux上编译运行了一下可以啊 1 杀手里昂 字283 2012-02-19 23:37:11
🙂我就是小学三年级开始学的编程 2 Abacus 字568 2012-02-19 03:36:42
🙂送宝! 青青树叶 字113 2012-02-18 10:19:14
🙂俺推荐两个:VBA+OZ
🙂同样,而且VBA非常实用 上面空气好 字81 2012-02-18 10:38:05
🙂和楼主一样的文科生来说几句 2 id8105 字1757 2012-02-15 21:34:06
🙂其实,直接用Office里带的VBA更简单 3 天外飞仙 字43 2012-01-12 23:11:34
🙂初学你就用C,而且程序写的没什么毛病,很厉害 1 晨池 字191 2012-01-11 05:55:44