登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
程序员的语言“艳遇史”(四) ——数学系师姐forth ...
程序员的语言“艳遇史”(四) ——数学系师姐forth
[ 复制链接 ]
恶凝毛
2025-5-29 15:08:29
(***以下小说情节纯属虚构,供朋友们在紧张编程后轻松一下,如有雷同纯属巧合,切勿对号入座***)
第四个女孩 数学系师姐forth
一个闷热的下午,我坐在梯形教室里,百无聊赖,听着讲台上一个白发大师的个人咏叹调。为加强理工科同学们的人文修养,出去泡妞不至于没词,丢我校的脸,学校新开了一批公共选修课,什么唐宋词、西方哲学史、小说欣赏等等。
学校还规定,公共选修课学分不够,不能毕业。真够狠的,弄得我们这些老生还要和一大批新生蛋子一起补修养。本人一向有崇洋媚外之倾向(没办法,翻开我们计算机科学教材,除了封面的“编者”,几乎就没看到中国人名),于是就选了西方哲学史。
大师的课上得飞快,我就逃了几次课,他已经从柏拉图讲到黑格尔了,跨越了千年。
“就绝对者自身成为被规定、有规定的东西来说,绝对者是实体。就绝对者是自己规定自己、自己建造自己来说,绝对者又是主体。”
天哪!虽然我清楚的听到了每一个词,但是听不懂他在讲什么!我感觉自己如同歌剧院里附庸风雅的音盲,处于极度郁闷状态中。
突然,一个迟到的女生从外面冲进来。我旁边正好有一空位,她就坐下了。我们俩一对视,不禁笑了。原来是数学系师姐forth。
我和师姐实在太有缘份了,去年跨系的英语六级辅导课,我们俩就碰到一起,这次又相会了。英语课上,我经常插科打诨,把她笑得前仰后合。有一次茶水喷了我一脑门,她急忙拿手帕给我擦掉。周围一堆目光刺过来,简直可以杀人。
唉,那时人真纯啊。课上完了,再也没和师姐联系。没想到这次居然又碰面了。我俩急忙高兴的聊开了。没想到师姐还是某一个地下社团的头目,叫什么“Forth语言学习研究协会”。她说,Forth是一门伟大的计算机程序设计语言,问我有没有兴趣加入。
什么?Forth?计算机程序设计语言?我怎么没听说过。
师姐见四下无人注意,便从书包里掏出一本协会登记册给我看,说已经有好多同学加入了。只见上面一堆签名,还有红手印。我吃了一惊。干什么?反清复明的天地会啊。
师姐说要看看我和Forth有没有缘份,就随手出一题考我。
如何用堆栈数据结构,机械计算一个算术表达式,比如3+2*4。
靠,也不想想兄弟是什么专业的。我们计算机科学家几十年前就搞定这个问题了。我熟练的把表达式转换为后缀形式,即为
2 4 *3 +
然后从左到右开始入栈,碰到象*这样的二元操作符,就把已入栈的两个操作数比如2、4弹出,算出结果8重新入栈。如此下去,最终得到结果11。
师姐说,不错,Forth的求值核心就是这样一个堆栈机,主要的操作都围绕着堆栈而不是寄存器进行的。Forth的语言长什么样的呢,她神秘的笑了一下,说就是后缀表达式。
我差点没晕死过去。这是给人看的吗?我一向以为后缀表达式属于中间代码一类的东西,居然还有人把它当作一门程序语言。怪不得我们计算机系的老师提都没提过Forth语言,整一个旁门左道啊!师姐怎么会中意这个东西。不过为了讨她喜欢,我只能学韦小宝,先混进去看看究竟再说。
不过Forth采用的堆栈虚拟机倒是不稀奇。为了便于移植,早期的ucsd Pascal系统就设计了一个基于堆栈的虚拟机,作为目标架构。上个世纪80年代,还有人专门设计了堆栈体系结构的cpu芯片,没成什么气候。没想到风水轮流转,到了21世纪,堆栈体系结构又流行起来了。这首先应归功于java语言,其底层的jvm就是一个典型的堆栈虚拟机。实际硬件中,堆栈体系结构效率不如寄存器方式。然而对软件虚拟机而言,不管寄存器还是堆栈,都实现在内存里,效率差不多。加上很多编译器程序员喜欢堆栈体系结构,所以它又得势了。
师姐还开给我几本参考书,让我到图书馆里自修一下,改天通知我参加讨论会。
图书馆里,我连打了十几个喷嚏,终于从一堆满是灰尘的故纸堆中,翻出一本《Forth之道》的书。好恶心,书都发黄了,上面还有斑点,估计很多年没人翻看了。作者是一个美籍华裔工程师,开篇就是一堆文言文,弄得和九阴真经口诀似的,我看得晕头转向。
突然,我看到一个熟悉的字眼“欲练此功,必先……”。我倒吸了一口凉气。不会吧,师姐!没说Forth语言男人不能学的,兄弟可还没有传宗接代啊!
我抑制住超过每秒百次的心跳,用颤抖的手翻过了那一页。去他的,原来是“欲练此功,必先明其机理。”这作者太恶心了,要写您也得写个男女双修之类的心法啊,什么“欲练此功”,搞得这么玄乎。还分两页写,诚心啊,要是心脏不好的,直接就挂了。
讨论会上,来了一堆人,有我校的,也有周边其他学校的。我带着计算机系科班出身的优越感,设计了一堆问题,对师姐等前辈进行轮番质问。但是随着他们的阐述和解释,我逐渐发现了自己的浅薄,慢慢开始欣赏Forth语言的美。
Forth系统中除了堆栈机这个执行机构外,还有一个类似简单数据库的东西——词典。其他语言中称为函数、过程的东西,在Forth中称为词,存储在词典里。Forth语言中几乎所有的项,甚至if、while这些控制结构,都以词的形式实现。程序员可以重新改写系统预定义词,也可以发明新的词,从而改变Forth语言。使用Forth语言开发的过程,就是用新词来丰富Forth词典的过程,就是重构旧有Forth系统的过程。最终你得到了一个面向应用领域的dsl。
把玩Forth系统一段时间后,我有了一个意外收获。借助Forth系统这个现实模型,我终于听懂我们哲学大师整天念叨的黑格尔鬼话了。程序员和Forth系统“人剑合一”,就好比黑格尔的绝对精神,即是实体又是主体。在开发过程中,它从一个朴素的基础出发,通过新词的加入不断否定自己,使自己满足应用领域的需求;但是这种否定是自我否定,自我超越,新词是在旧词的基础上形成的,无需等待语言设计师的恩赐,语言进化的权力给了程序员。
看了这里,有人会问,那Forth和汇编什么区别?只要够底层,不是想做什么就能做什么吗?Forth语言和c语言一样,在底层机器架构上加了一个薄薄的胶合层,可以不断向上发展新的抽象,但同时并不忘掉底层机器这个根本。
如果大家爱看“暗算”、“潜伏”这些谍战片,可能会知道一种很土但是很实用的加密法——字典加密法。巧的很,在老式Forth系统中,其编译/解释方式被称为threaded code,和这种加密法很相象。
假设你是打入敌人内部的谍报员,有一段情报要加密,比如“暴露了,行动停止”。这就好比一段待编译的Forth源程序。
谍报员拿来一本密码本字典,开始生成密文。假如“暴”字,在字典的第15页第11行,它对应的密文就是1511。如此进行下去,就把明文全部变成数字形式的密文了。
Forth系统对源程序进行处理,分两个阶段,编译和解释。首先进行的编译阶段也是这么干的。对源程序中引用的每一个词,在系统词典中找到它的地址。用地址编码代替文本,如此进行下去就可以把文本程序变成了一个有序的地址列表。程序员在Forth编译阶段可以玩很多花招,这种强大的元语言编程能力不输Lisp语言的宏。
后方收到密文后,按页号和行号查字典,就会将密文重新恢复成明文。这对应于Forth系统的解释阶段。解释过程做什么呢,按次序跳转到地址所指示的词定义中去,进行执行。如果是系统预定义词,则直接执行其机器代码;如果词属于用户自定义的,则其过程体也是一个地址列表,也使用threadedcode解释方式进行处理。
一天,师姐打电话说要和我单独谈谈,把我激动得不行。我兴冲冲跑到约定地点。月上柳梢头,人约黄昏后,可师姐却是为Forth协会之事而来的。师姐说,她要毕业离校了,已请示协会高层,准备把派驻我校的香主一职转给我。
靠,这种事!不过好歹是个一官半职,我在师姐含情脉脉的攻势下,只好欣然接受。突然,师姐诡异的一笑,给我一个信封。她说按惯例都有一笔“财富”要转给新任香主,但是必须等我为协会新发展100个会员才能打开信封。我只好发了毒誓,提前启封必遭天打五雷轰什么什么的。
后来一个月,为完成师姐的托付,我真是尝尽世态炎凉。原以为发展很容易,没想到在计算机系这个最大目标群体,先遭冷遇。一堆人都以为我疯了,入了邪教。某一特钟情于c++语言的哥们差点揍我,说要替我系清理门户。经我七蒙八骗,又和自动化系机器人制作协会结盟,终于快凑够数了。
还差一个,怎么办?我在家里,流着口水,死死瞪着那个信封。受不了啦!我起身抓起我们家那只卷毛狗,来了个霸王硬上弓,把狗“手”沾上印泥,在登记册摁上一下,然后代署小名。搞定!
打开信封,先掉出一个我校历任Forth协会香主之功名簿,每个人都有照片、姓名、系别、毕业时间等信息。还有师姐的一封信。师姐说,现在我已经证明自己是一个合格的协会负责人,可以把自己的信息写在簿上了,将来传给下任香主。我望着簿上师姐的照片,不禁呆了。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
恶凝毛
2025-5-29 15:08:29
关注
0
粉丝关注
16
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9986
凶契帽
9990
处匈跑
9990
4
黎瑞芝
9990
5
杭环
9988
6
猷咎
9988
7
鲫疹
9988
8
接快背
9988
9
里豳朝
9988
10
氛疵
9988
查看更多