程序设计理论基础

来源:互联网 发布:sql应用开发培训 编辑:程序博客网 时间:2024/06/01 23:57
1.概述
(1)程序设计理论基础
        过程式程序有人称为命令式程序,但是由于与机器语言指令有混同,所以一般用过程式程序。程序的产生是由于冯诺依曼机,最早的高级语言程序就是过程式程序Fortran,Basic。Backus曾豪言壮语要赶走冯诺依曼在计算机高级语言中的王者地位,但是到今天也没有成功,想来Backus一定十分心酸。过程式程序是应用中产生的,没有理论,但是遵守数理逻辑、数学计算和图灵与另一个计算机科学家提出的可计算理论。因此,程序有正确性。
        面向的对象程序是解决所谓的“软件危机”出现的。蓝色巨人曾在上世纪60年代开发一个新机型的系统软件,但是用了三年的时间,最多时候用了1000人,编写了100万行源码,据说有很多错误。每debug1000个错误,就发行一个新版本。所以这件事令程序员头疼,就开创了软件工程研究。很多人开始设计新的语言或新语言思想。1972年C语言,1977年FR风格。C++程序出现在1980年代,不仅为了解决软件危机,而且解决了大型程序要求的程序实体独立,错误传播限制,所谓名空间的广度。面向对象技术开始于SIMULA67,现在的面向对象程序包括C++,Java,PHP,C#,Python,Perl,Ruby,VB.net。面向对象技术的理论基础是抽象数据类型ADT。
       函数式程序设计的理论基础是代数规范,例如基调代数,但并不像看上去那么难。有人认为函数式程序起源Lambda形式语义模型,而Backus设计了FR程序代数,因此有不同认识。
   逻辑式程序设计的理论基础是一阶谓词逻辑。数理逻辑包括命题逻辑和谓词逻辑。在谓词逻辑中,一阶谓词在谓词转换器得到有效应用,而二阶谓词则没有得到学术界的广泛讨论。逻辑式程序设计=logic+control。逻辑logic表示规则,控制control表示规则应用的顺序。
(2)什么是编程范式
     编程范式不仅反应高级语言所属种类,而且是高级语言的范式。例如,pascal,c,Fortran语言是过程式程序设计,C++,java是面向对象程序设计,函数式程序设计有Haskell和Scala。Backus在1977年图灵奖颁奖典礼上提出FR风格程函数式程序设计,他认为FR是函数组合的方式。逻辑式程序设计有prolog,Lisp。
     所谓编程范式(programming paradigm)是指:在高级语言程序设计范围中,程序的规范表示,并遵循一定的条件约束。这些条件可以有:语法正确,语义实例化正确,特定的编程风格等。编程范式实际称为编程泛型,表示一门高级语言使用的概念体系和思维模式。
     矩阵范式(错误的称呼)实际称为矩阵范数(matrix norm),是矩阵的度量方式,计算长度的函数。向量和矩阵范数是表示n维空间向量或矩阵的标量性质,但是反应了它们的结构性质。社会科学(哲学)意义上的范式,在美国科学哲学家托马斯·库恩(Thomas.Kuhn)1962年出版的《科学革命的结构》(The Structure of Scientific Revolutions)中有论述。

2.过程式程序设计理论基础