石器时代的程序员是如何写代码的
来源:互联网 发布:算法设计与分析3 编辑:程序博客网 时间:2024/05/23 00:57
关注「实验楼」,每天分享一个项目教程
没有编译器,而且 KIM-1 只有一个十六进制的小键盘和一个小的显示屏,这意味着要手工写代码,手动编译和打字…
正文共:1148 字
预计阅读时间:3 分钟
回到 1985 年,我还在给一个设计成给瓶子贴标签的机器计算机化。制造这个机器的公司用机电控制,将标签从卷轴上撕下帖到传送带传来的产品(例如洗发液瓶子)上。整个过程需要工作在毫米级精度上,因为消费者不喜欢没有完全对齐的标签。
不幸的是,机电控制不像电脑控制那样灵活,因此该公司与当地一所工学院(我正在该校学习电子学)签订了合同,用 KIM-1 来设计电脑控制原型。另一个学生整合机器,他把传送带,标签发放机制,步进电机控制,还有探测标签和产品的红外感应器进行组装。
我的工作是用 6502 汇编语言写软件。不幸的是,没有编译器,而且 KIM-1 只有一个十六进制的小键盘和一个小的显示屏。因此这意味着要手工写代码,手动编译和打字。代码是这样子的:
很快电脑控制需要变得更加灵活。程序首先自动校验:测量卷轴上的标签自身的长度,测量标签之间的距离,并且它启用了一个运算器快速设立”悬挂”距离(标签要伸出去多少才能让产品抓到)。
在运行中,它要能自动检测传送带移动的速度,还有当供应卷轴上的标签缺失时(当一个卷轴意外掉落时就会发生)进行补偿和标记。
当然像这样写代码是一种痛苦。你首先必须写完代码(蓝色),然后转化成机器码(红色),并计算每个指令的内存地址和相对跳转地址。那时候我没有能够计算十六进制的计算器,所以我自己完成大部分所需的计算(如在大脑里计算相对跳转地址)。
然而它教会了我两件事:在第一时间写对代码和 学会在大脑中运行代码。后者至今仍然重要。我调试时还是会先在大脑里跑一遍。通常情况下我会先于 gdb 或类似的工具,使用我的大脑调试器。KIM-1 里只有最基本的调试功能,我在程序里也写了点,但是大部分调试都是盯着输出(十六进制显示屏上),(步进器的)行为看,还有在脑子里运行代码。
PS:一些读者指出在 1985 年 KIM-1 离先进水平还很远,而且我们有很多好东西例如编译器等等。是的。事实上比这还早的时候我用 BASIC 和 ZASM(Z80 编译器)在 CP/M 下编程,但是你是用你已有的条件来干活的,工学院有空闲的 KIM-1,它有不错的 I/O,因此它是制作嵌入式控制器的很好的原型系统。
作者:奇风余谷
出处:程序师
链接:http://www.techug.com/post/how-programmer-write-code-in-stone-age.html
推荐阅读:
2017年12月编程语言排名:Kotlin和C语言成为“年度编程语言”候选人”
数据显示:中国的程序员是世界上最牛的程序员
17个新手常见Python运行时错误
程序员必须掌握的6种软技能
- 石器时代的程序员是如何写代码的
- 1985年程序员是如何写代码的
- 来自石器时代的困惑
- VS.Net 2005是个石器时代的工具
- 程序员的基本原则 /如何写好代码
- 程序员的基本原则 /如何写好代码
- 好的程序员如何写代码
- 看看幽默的程序员如何写代码...
- 写代码是程序员修炼内功的好方法
- 惊叹!这个盲人程序员是这样写代码的
- 一女孩写的经典“代码”,程序员该如何应对?
- 一女孩写的经典“代码”,程序员该如何应对?
- 一女孩写的经典“代码”,程序员该如何应对?
- 一女孩写的经典“代码”,程序员该如何应对?
- 一女孩写的经典“代码”,程序员该如何应对?
- 一女孩写的经典“代码”,程序员该如何应对?
- 女孩写的经典“代码”,程序员该如何应对?
- 一女孩写的经典“代码”,程序员该如何应对?
- Python项目挑战赛下周开始,真实的工作场景等你挑战!
- storm学习地址
- 九张图带你了解全宇宙最神秘的团体——程序员
- AE中导入两个shp并合并
- 2018 最具就业前景的 7 大编程语言
- 石器时代的程序员是如何写代码的
- 算法——快速排序
- Stack Overflow技术趋势分析:ORM在走下坡路
- SEO基础入门教程专业词汇大全,SEO人员必学
- 你必须知道的HTTP基本概念
- JNI 之c/c++和Java交互,调用java成员
- 结对编程的好处与坏处
- 面向IT专业人员的8个新兴AI工作
- PHP实现双向队列