一个计算机爱好者的不完整回忆(三)
大一的时候还开了编程课,学的是FORTRAN77,这是我唯一真正科班学的编程语言。现在再让我用FORTRAN编程序估计不能马上动手了,得先重新看一下教程,不过我觉得FORTRAN77不难,基本上等同于BASIC,即便没学过看几天应该也可以上手编程了。这是一个以科学数值计算为主要目的的编程语言,我工作后还见到有老师傅使用这个语言进行工程上的计算。由此我想说,大家经常争论的时候动不动就说“XX语言将死”或者“XX语言必死”之类的话真的是太无聊了,连这么古老的语言现在仍然还有用武之地,那些现在用户量这么大的语言哪那么容易就死掉。
当时不懂编译原理,只知道FORTRAN程序编写完成后先要FOR1一下,然后PAS2一下,然后再LINK一下,其实现在我也不知道这个FOR和PAS到底干了些什么。当时的理解就是我写的程序计算机是看不懂的,必须用这三个程序给变成二进制执行的代码,现在再看的话,当初的想法也没错,呵呵。
说到FORTRAN了,就想起前段时间CSDN上讨论为什么循环的变量通常是I,J,K的问题。其实这还真有极大的可能与FORTRAN有关。FORTRAN是世界上第一个高级编程语言,它有一个I-N规则,就是以I、J、K、L、M、N开头的变量默认是整形,其它的则默认是实形。我不知道别人是什么习惯,反正我第一次写循环的程序的时候,用的就是I,没什么理由,就是方便。在我见过的FORTRAN小程序中,还真没有特意去把abc之类的字母定义成整形使用的,人总是很懒的,既然有默认的那么少写一行代码不是很好么。嵌套循环自然而然的就是I,J,K,我想这是人的共性吧。后来这些使用FORTRAN的人再去用别的语言的时候,也就习惯性的用i,j,k了,毕竟FORTRAN比其它中高级语言早出现了好多年,已经足够形成一种习惯了。
除了FORTRAN外,我们还有汇编课程,汇编其实学起来一点都不难,就那么几个命令,不就是在寄存器和内存之间不断的搬运数据然后运算,不过真要用汇编编个程序,可真难,很佩服吴晓军能用全汇编写出2.13。很多人在进行语言性能争论的时候往往会提到汇编和机器语言,并且认为机器语言要比汇编性能高,其实我倒是一直觉得汇编语言和机器语言基本上算是一回事,汇编语言不过就是机器语言的助记符而已。这是我当年学汇编的时候的感受,也许不正确,所以加重一下,有大牛的话欢迎指点。汇编语言虽然考了很高的分数,不过说实话,不会用,就好比我知道怎么把砖用水泥连接在一起,但我却无法盖成一栋大厦一样,最多只能砌个小矮墙。用汇编写个加减法、1到100的求和还勉强,干别的就不行了,不过如果是算数的话,我用FORTRAN就可以了。所以汇编么,尽管是我所有计算机相关课程中考试分数最高的,基本上还是被我扔了,因此到现在基本上就属于完全不懂了。
用FORTRAN做过一个游戏,由于FORTRAN没有任何图形处理的功能,所以游戏的一切都是用字符组成的。首先是用字符显示出一个地图,不同的地点之间有道路连通,然后玩家用字母A代替,玩家需要不断的到各个地方去触发事件,赚钱,最后到指定地点买蛋糕送到某地,我记得最后不是送给女朋友,送给谁就不知道了,反正把蛋糕送到就算是完成任务了。当时还没玩过文字MUD,现在回想的话,还真有点象MUD。我对这个游戏不满意,毕竟每执行一步操作就要滚屏重新显示地图,不像游戏,不过我的同学们倒是玩的还挺来劲,评价是不错,挺好玩。不行,游戏不应该是这个样子的,这离我当初说要做比VR战士更真是的格斗游戏的目标差得太远,FORTRAN不行,那就换。
按照正常的行文规则,下面应该写我换别的语言,不过我打算继续先写FORTRAN。
FORTRAN在我整个大学期间一直都在用,用来进行工程计算,特别是后期学的有限元计算,用处很大。当时我们的老师说我们系有一套有限元计算的FORTRAN程序,当初花了50万美金买的,谁想用的话可以去拷贝。不过我周围的同学没人去拷,我当时还真是有些动心了,不是因为这东西的价格,而是对这套东西本身有些兴趣。不过最后大家都没拷,我也有些心疼我的磁盘,我倒是不记得是9MB的容量还是9张盘了,如果是9MB容量的话至少需要19张软盘才行,反正最后是放弃了。在我工作后,我们工厂的很多有限元计算都需要拿到我母校去计算,不过最近几年就不用了,除非技术含量很高的有限元计算,否则工厂自己用买的可视化有限元计算软件都可以完成了。
用FORTRAN编的最后一个较大的程序应该是计算柴油机活塞燃烧时的热应力分析,是一个有限元计算方面的程序。我曾经在CSDN的某个帖子中说过很多专业方面的编程都是由专业人员自己写程序的,而不是找专业程序员来完成的。并说了一句:毕竟让一个专业人员学会编程序比让一个程序员学会专业知识更容易,由此还引起了一点口水。工程方面的计算其实大部分都是纯数值计算和分析,学会这种编程很简单,像我说的这种需求,确实是专业人员来做才是最为合适的,所以我所在的大学基本上工科专业学生都是要学计算机编程的。再扯远一点,我觉得计算机专业与外语专业有些类似,越来越多的其它专业的人员会掌握计算机编程和外语知识,所以有些原来需要计算机或者外语专业的人才能完成的事情由专业人员本身就可以做到了。就好比原来我们每个科室都配备打字员,因为当初在电脑上打字不是谁都会的,但是现在,科室里面都没有打字员了,只有对打字速度要求特别高的部门才会用到。英语也是,原来技术人员与外国技术人员交流需要翻译,但是现在很多时候不需要翻译,由技术人员自己来交流就可以了。希望大家理解我的意思,绝对没有任何对计算机专业人员不敬或者唱衰计算机专业的意思。其实大家换位想一想,那些翻译得比较好的计算机书籍,有多少是由英语专业的人翻译的?还是计算机专业的人并且懂英语的人翻译得更好一些吧。希望莫要因此引起太多的口水。
当时不懂编译原理,只知道FORTRAN程序编写完成后先要FOR1一下,然后PAS2一下,然后再LINK一下,其实现在我也不知道这个FOR和PAS到底干了些什么。当时的理解就是我写的程序计算机是看不懂的,必须用这三个程序给变成二进制执行的代码,现在再看的话,当初的想法也没错,呵呵。
说到FORTRAN了,就想起前段时间CSDN上讨论为什么循环的变量通常是I,J,K的问题。其实这还真有极大的可能与FORTRAN有关。FORTRAN是世界上第一个高级编程语言,它有一个I-N规则,就是以I、J、K、L、M、N开头的变量默认是整形,其它的则默认是实形。我不知道别人是什么习惯,反正我第一次写循环的程序的时候,用的就是I,没什么理由,就是方便。在我见过的FORTRAN小程序中,还真没有特意去把abc之类的字母定义成整形使用的,人总是很懒的,既然有默认的那么少写一行代码不是很好么。嵌套循环自然而然的就是I,J,K,我想这是人的共性吧。后来这些使用FORTRAN的人再去用别的语言的时候,也就习惯性的用i,j,k了,毕竟FORTRAN比其它中高级语言早出现了好多年,已经足够形成一种习惯了。
除了FORTRAN外,我们还有汇编课程,汇编其实学起来一点都不难,就那么几个命令,不就是在寄存器和内存之间不断的搬运数据然后运算,不过真要用汇编编个程序,可真难,很佩服吴晓军能用全汇编写出2.13。很多人在进行语言性能争论的时候往往会提到汇编和机器语言,并且认为机器语言要比汇编性能高,其实我倒是一直觉得汇编语言和机器语言基本上算是一回事,汇编语言不过就是机器语言的助记符而已。这是我当年学汇编的时候的感受,也许不正确,所以加重一下,有大牛的话欢迎指点。汇编语言虽然考了很高的分数,不过说实话,不会用,就好比我知道怎么把砖用水泥连接在一起,但我却无法盖成一栋大厦一样,最多只能砌个小矮墙。用汇编写个加减法、1到100的求和还勉强,干别的就不行了,不过如果是算数的话,我用FORTRAN就可以了。所以汇编么,尽管是我所有计算机相关课程中考试分数最高的,基本上还是被我扔了,因此到现在基本上就属于完全不懂了。
用FORTRAN做过一个游戏,由于FORTRAN没有任何图形处理的功能,所以游戏的一切都是用字符组成的。首先是用字符显示出一个地图,不同的地点之间有道路连通,然后玩家用字母A代替,玩家需要不断的到各个地方去触发事件,赚钱,最后到指定地点买蛋糕送到某地,我记得最后不是送给女朋友,送给谁就不知道了,反正把蛋糕送到就算是完成任务了。当时还没玩过文字MUD,现在回想的话,还真有点象MUD。我对这个游戏不满意,毕竟每执行一步操作就要滚屏重新显示地图,不像游戏,不过我的同学们倒是玩的还挺来劲,评价是不错,挺好玩。不行,游戏不应该是这个样子的,这离我当初说要做比VR战士更真是的格斗游戏的目标差得太远,FORTRAN不行,那就换。
按照正常的行文规则,下面应该写我换别的语言,不过我打算继续先写FORTRAN。
FORTRAN在我整个大学期间一直都在用,用来进行工程计算,特别是后期学的有限元计算,用处很大。当时我们的老师说我们系有一套有限元计算的FORTRAN程序,当初花了50万美金买的,谁想用的话可以去拷贝。不过我周围的同学没人去拷,我当时还真是有些动心了,不是因为这东西的价格,而是对这套东西本身有些兴趣。不过最后大家都没拷,我也有些心疼我的磁盘,我倒是不记得是9MB的容量还是9张盘了,如果是9MB容量的话至少需要19张软盘才行,反正最后是放弃了。在我工作后,我们工厂的很多有限元计算都需要拿到我母校去计算,不过最近几年就不用了,除非技术含量很高的有限元计算,否则工厂自己用买的可视化有限元计算软件都可以完成了。
用FORTRAN编的最后一个较大的程序应该是计算柴油机活塞燃烧时的热应力分析,是一个有限元计算方面的程序。我曾经在CSDN的某个帖子中说过很多专业方面的编程都是由专业人员自己写程序的,而不是找专业程序员来完成的。并说了一句:毕竟让一个专业人员学会编程序比让一个程序员学会专业知识更容易,由此还引起了一点口水。工程方面的计算其实大部分都是纯数值计算和分析,学会这种编程很简单,像我说的这种需求,确实是专业人员来做才是最为合适的,所以我所在的大学基本上工科专业学生都是要学计算机编程的。再扯远一点,我觉得计算机专业与外语专业有些类似,越来越多的其它专业的人员会掌握计算机编程和外语知识,所以有些原来需要计算机或者外语专业的人才能完成的事情由专业人员本身就可以做到了。就好比原来我们每个科室都配备打字员,因为当初在电脑上打字不是谁都会的,但是现在,科室里面都没有打字员了,只有对打字速度要求特别高的部门才会用到。英语也是,原来技术人员与外国技术人员交流需要翻译,但是现在很多时候不需要翻译,由技术人员自己来交流就可以了。希望大家理解我的意思,绝对没有任何对计算机专业人员不敬或者唱衰计算机专业的意思。其实大家换位想一想,那些翻译得比较好的计算机书籍,有多少是由英语专业的人翻译的?还是计算机专业的人并且懂英语的人翻译得更好一些吧。希望莫要因此引起太多的口水。
posted on 2012-05-30 15:58 java课程设计例子 阅读(138) 评论(0) 编辑 收藏 举报