博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)程序语言理论的学习对于程序员教育的作用
阅读量:5796 次
发布时间:2019-06-18

本文共 1233 字,大约阅读时间需要 4 分钟。

程序语言理论的学习对于程序员教育的作用

by 王垠

推荐 Dan Friedman 的这篇文章 “”。它介绍的是对程序语言理论的学习会对程序员的教育产生什么样的作用。这是一篇很长的英语文章,到后面会非常技术性,所以一般人只需要看前10页的小故事就行了。

其中的几个要点是:

  1. 在一个实际的工程项目中,当需要数据库的时候,人们召唤数据库专家;当需要网络方案的时候,人们召唤网络专家;当需要操作系统的时候,人们召唤操作系统专家。但是所有这些事情都离不开的一个东西是程序语言,所以程序语言专家往往能够起到总览全局的构架和协调作用。但是人们往往不知道程序语言专家是什么,以及如何找到他们。

  2. 这里的 “study of programming languages” 并不是指学习某一种特定的程序语言(比如 C, Java 或者 Scheme),而是指学习如何实现程序语言的一些概念,也就是写一些解释器。

  3. 学习任何知识的最好方法,就是对它进行建模。所以学习程序语言最好的办法,就是实现程序语言。对于普通的程序员(不打算成为程序语言专家的),这不需要特别专业高效的实现,一个大概的实现也行。

  4. 这样的学习能够让人掌握编程语言的一些“精髓”(essentials)。之后学用一种新的语言,不过是把这些已经学到的精髓筛选组合一下。

  5. Friedman 指出,对程序语言理论的学习最重要的两个作用是:1)它教会你如何避免程序语言中的不好的思想。2)它教会你如何在任何语言里使用好的思想(包括本身没有这种好的设计的语言)。文中提到的例子包括动态作用域 (dynamic scoping),Java 的缺少尾递归优化等为什么是坏主意,以及为什么程序语言的理论知识可以教会你如何在没法改变语言的情况下绕过这些问题,达到好的设计。

  6. 这个文章里面提到的人 Jon Rossie 和 Anurag Mendhekar 都是 Friedman 的学生。他们用亲身经历讲述程序语言的理论知识如何在他们的现实工程中起到重大的作用。Jon Rossie 现在是 Cisco 的 Principle Engineer。Anurag Mendhekar 是 Online Anywhere 的总设计师和创始人,后来被 Yahoo! 收购,现在是另一家公司的 CEO。Friedman 还有很多其他学术后裔都在世界上最好的工作职位。比如 Google 的 V8 JavaScript 编译器的构架师,Cython 的设计师,Cisco 的另一个 Principle Engineer,还有一些是创业家,终身教授等等。


This article was posted on yinwang’s sina blog, on 2012-06-13.

Though it’s not available now.

转载于:https://www.cnblogs.com/zhanglong8681/p/4814102.html

你可能感兴趣的文章
创客集结号:为什么要使用Arduino?
查看>>
JetBrains PyCharm 2017.3注册码
查看>>
linux mysql主从复制
查看>>
[iphone]设置UIButton上字体的对齐方式
查看>>
COGS 197 [HAOI2008] 排名系统
查看>>
5.单例设计模式
查看>>
错误修改.bashrc文件导致所有命令无法使用解决方法
查看>>
点击链接打开两个页面
查看>>
【Android游戏开发十七】让玩家自定义手势玩转Android游戏!—Android Gesture之【输入法手势技术】...
查看>>
AscII表
查看>>
CentOS6.5 搭建基础PHP环境(yum安装)
查看>>
IE/Firefox中css兼容常见问题
查看>>
【转】javascript深入理解js闭包
查看>>
正则表达式的应用
查看>>
Jsp解析过程
查看>>
软件项目版本号的命名规则及格式
查看>>
datatime来计算代码段运行时长
查看>>
前端知识之HTML标签
查看>>
测试用例设计-WEB通用测试用例
查看>>
自定义全局指令让文本框获取焦点
查看>>