程序原本(八十一):应用开发基础——应用程序设计语言的复杂性(语言的进化方向——从“Hello World!”中可见的事实)

阅读数:31 2019 年 10 月 3 日 14:36

程序原本(八十一):应用开发基础——应用程序设计语言的复杂性(语言的进化方向——从“Hello World!”中可见的事实)

现在,大多数程序员都可以写出一个具有典范意义的“Hello World”程序12

12 引自: http://www2.latech.edu/~acm/helloworld/java.html

复制代码
class HelloWorld {
public static void main (String args[]) {
for (;;) {
System.out.print("Hello World");
}
}
}

同时也会真正地、从个人意识中忘掉这样一个程序的含义以及需求不过是13

13 从语言实现上来说,其语义是print "Hello World",而();等符号是具体语言的语法。

复制代码
print("Hello World");

如果仅以这段程序而言,用户的需求仅用上述代码即可实现。而 Java 或其他一些应用程序开发语言则在这样的代码中加入了更多的概念,诸如:

  • 类与对象等,例如:class HelloWorld
  • 名字空间、导入导出等,例如:System.out以及隐式地导入System
  • 方法、属性、事件,以及调用约定等,例如:print()
  • 类方法、类静态成员等,例如:static
  • 引用、值与无值,以及基本类型系统等,例如:void
  • 可见性、作用域等,例如:public
  • 字符串值、字符串类等,例如:"Hello World"String args[]
  • 应用入口与运行环境约束等,例如:void main()

除了这些概念14,在具体的开发环境中还会有容器、包、配置脚本、服务、模型、验证器、指示字、伪指令、分发、部署、版本容器、基线等概念,以应付不同角色的需求。

14 其大部分与“面向对象”这一语言范式有关,部分则出于应用环境、语法习惯等在语言的具体设计上的选择。

当一门语言从“实现程序功能”变成要“实现产品需求”时,其内部的语言设计思想也渐渐地变得不遵守“算法 + 数据结构 = 程序”这一经典法则。回顾“篇二:语言及其面临的系统”,我们可以将这一切的变化以及可预期的、语言进化的方向都归结为:

通过在程序组织上的结构化来解决规模问题。

评论

发布