正文

Forth 这个东西(7)2005-08-05 15:29:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/forth/3474.html

分享到:

发信人: johnchen@csie.nctu.edu.tw (Chien-Hung Chen), 信区: programming
发信站: 交大资工 News Server (Wed Apr  6 13:24:38 1994)

Hi, all Forthy :
我觉得 Forth很流行呀! 我自己本人就有各种不同版本的 Forth Systems.Super8, Z80 eforth, 8051 Forth, 68K forth, and NC4000.  不过, 我接触 Forth 这么久以来, 我发现使用它的人愈来愈高竿, 用得越多, 越是
绝口不提 !

像我应用 Forth 来发展 8051 的系统. 我绝对跟别人说是用 Assembly 写的, 免得他人问东问西的 !!

======================================================================

发信人: lmy@cis_nctu (Daemon of Andromeda), 信区: programming
发信站: 交大资科_BBS (Apr  7 10:20:53 1994)

    8051 Forth 我没用过, 倒是用过 Super8 Forth, 似乎是 F83 的 kernel 改过来的. 12MHz 的 S8 Forth, 跑得比我那 16MHz PC 286-AT 上的 F83 还快, 这是意料中的情形.

    我觉得在迷你系统中要快速地 porting 一个交谈式的系统, 具有强大的硬件控制以及软件开发扩充能力, Forth 是最佳地选择. 也就是说, 在单芯片的世界中,我个人觉得 Forth 将是 porting effort最小的. (甚至在还没有很好的 assembler之前, 就可以有 meta-compiling 所产生的 Forth 系统了, Super8就是很好的例子,从头到尾, 我不必用它附的 assembler, 因为 Forth 自己就有 assembler. 而用 C语言来发展程序, development 的非交谈式环境, 以及所产生的large-size 执行档,将让你头痛万分, 光是等erase-burning EPROM 就让人受不了了,提compile-link-buring 的过程)

    Forth 的 assembler 尚有 if-else-then, begin-while-repeat, begin-until等高阶流程控制, 所以 programmer 不用在 cmp, j[n][l|g][e|t] 等指令的排列组合中迷失自我.

    有这么多好处, 大家都应该来玩一玩, 毕竟我们都被主流的 C 语言弄得有点麻木. 玩玩 FORTH, 轻松一下.

------------------------------------------------地山谦, 亨, 君子有终

发信人: lmy@cis_nctu (Daemon of Andromeda), 信区: programming
发信站: 交大资科_BBS (Apr  8 09:42:42 1994)


    我学计算机语言的顺序为 APPLESOFT BASIC, 6502 Assembly, Forth, Fortran,PASCAL, C, x86 Assembly, PROLOG, COBOL. (后两种只看过, 没用来写过程序,倒是帮很多商专的小妹妹抓过许多 COBOL 的 bug) 我觉得 BASIC, FORTRAN, C, Pascal, COBOL 是一类的, 属于程序性的语言, assembly 也可以说是比较 low-level 的程
序性语言. Forth, PROLOG, LISP 则和上述传统性的语言在概念上有很大的出入, 提供了另外的看问题以及解决问题的方法. 这就是为什么许多信息科系要将 PROLOG 或 LISP列为必修的原因. 当然, 还有其它许许多奇怪的语言, 但更不流行.
    当时, 我们在高中计算机社经常会提出一些问题来比赛执行速度, 当时比较普遍的语言是 Applesoft BASIC 以及 6502 assembly, 其它语言在 apple 上的 compiler尚未普及 (想想看main memory 只有 48KB), CP/M 上倒是有 FORTRAN, Pascal的compiler. 当时, 我的Forth 程序执行速度通常排第二, 次于 assembly. interpreter形式的 apple BASIC, 只能以奇慢来形容. 后来出了一种 TASC compiler (T?? applesoft compiler) 速度戏剧性的变快, 但仍不是 apple forth 79 的敌手. 因为 6502 有0 页寻址, 速度最快, 刚好可以做 forth 的 stack.

    到了 8088, push/pop 指令之慢, 严重影响 F83 的速度, 再加上要和同学合力写程序, 或是作业习题指定用 C/PASCAL, 就很少用 forth 来写正式的程序, 都是自己当娱乐来写. 有一次, 数据结构的助教说不限语言, 要交三个作业, 都是和 link list/tree 有关, 我就分别用 C, PASCAL, FORTH 各写一个作业交出去. 其中 FORTH
程序结果看起来, 大致上是像这样子的
tree root
tree reverse-root
5 root data -> !
3 root left -> data -> !
2 root right -> data -> !
1 root left -> left -> data -> !
4 root left -> right -> data -> !

." The old tree is" cr
root dump-tree
root reverse-root reverse-tree
." The reverse tree is" cr
reverse-root dump-tree

The old tree is
       5
      / \
     3   2
    /  \
   1    4

The reverse tree is
      5
     / \
    2   3
       / \
      4   1

    我也不知道助教给我什么分数? 限于篇幅, 以后有空再聊

----------------------------------地山谦, 亨, 君子有终


发信人: ajax@phoenix (ajax), 信区: programming
标  题: To Forth or not to Forth ?!
发信站: 交大资工凤凰城信息站 (Sat Apr  9 10:03:56 1994)
转信站: cis_nctu!bbsroute!phoenix

    哈姆雷特在宫殿徘徊:
        To be or not to be ?

    有人犹豫着:
        To C or not to C ?
    但是 "C" 念起来有点像闽南语的"死", 好像不太乐观呢.

        To Forth or not to Forth ?
    为何不前进呢? 它被形容得如此好...

    终究一个人的精力有限, Forth虽好, 但仍要使用的人越多, 才会有更多的好用的东西出现, 能有几人像 Forth牛仔 Charles Moore先生一般, 什么都自己来, 要设计CPU, 还可以自己设计 CAD系统, 据说到目前除了 FPC外, 还没用过别人写的 Forth系统. 因此应鼓励大家多将自己的经验公开, 如此可增加彼此的功力.

    没有学过汇编语言及计算器结构的人, 似乎很容易被 C的pointer弄昏头, 更不用说有多少功力, 但由 Forth入门, 可以很容易的了解 OS, compiler, file system,assembler, editor, man machine interface..., 因此学过 Forth的人, 不论是用它来工作, 都很容易进入情况.

    Forth 虽然可以很容易加上 Object Oriented 的特性, 但好像不易看到此类的Forth, 听说 MAC上有个叫 YERK 的系统不错, 但可惜我没用过 MAC, 无缘使用.
===============================================================

阅读(3987) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册