内容提要
aaas语言(简称“A语言”)的内容包括:例外exception(含缺省)和意外unexpection(含缺失)的三种策略(及时、延迟和后期)以及它们统一的外观、公共的语义表示和完全等价的语法。
引出问题
在开始之前,各位感兴趣的话,可以先查一下 两种非主流的编程范式:断言式和防御式。虽然现有的各种观点都不是很准确,甚至有悖论和冲突。但是能抓住重点就行,尤其是我上面的“内容提要”可能会有帮助。
目前能从网上搜到的,有几种说法。一种认为二者相同或完全相反(对后者来说,提到其中的一种就暗示了另一种,所以仍然只能算一种),另一种认为是两种不同的编程范式。但无论哪一种,他们都是关于“例外”的,与“意外”没什么关系。
说到语言的编程范式,一般我们常说的是 “命令式”和“声明式”,它们是两种元语言。说到主流的编程技术(一般也叫作“主流范式”),一般会提到“围堵”和“截断”,它们是两个元语言行为。无论是元语言还是元语言行为,都是用于处理已知的和可知的情况的,都不能解决 未知的情况 和相对没有意义的事件。(前者是情境演算,后者是事件演算)
上面的 涉及到 是语法定义(“语法”分支 )和 语用逻辑(“语用”分支)两个方面。
除了上面直接提到的问题,上面的描述还带来另一个问题,就是“范式“有着各种含糊不清的意义。
同样的问题还出现在“模式”、“形式”等甚至任何一个以“x式”结尾的词上面。但他们有一个共同特点就是,都是逻辑上的。
在语言学方面,我们应该认识到的是这些歧义性和模糊性,正是自然语言的特质,而非缺陷。但在计算机科学中,它们却是形式语言在程式化上的意外和例外。也正是aaas要解决的中心问题,它们是与语言的“能力水平competence ”和“性能performance水平”之间的区别密切相关的。 而这个语义问题的解决首先就需要平衡好语言的另外两个分支“语法”和“语用”之间的关系。 (二者虽然都承认了 这个区别,但重点不同。)
【未完待续】