`

编程语言的模式以及背后的思想

 
阅读更多

      命令式编程语言,对于冯诺依曼体系结构中机器命令的一种抽象,我们常见的机器语言、汇编语言、早期的高级程序设计语言、C、Pascal以及Ada都属于这类程序设计语言。

      OOL,将问题空间进行抽象和建模的一种程序设计语言,更加自然和简单。

      FOL。函数式编程将一切的运算归结为数学函数的计算。有些人将它理解为函数的变换,总算捉到一些皮毛。因为函数式编程中,对象的定义是函数式的,输入输出都是函数式的。一切都基于超强类型的函数。经过底层的lamda函数计算,一切浑然天成。函数式程序设计语言中没有变量,一切在定义完成以后就无法改变(真的是这样吗?)。而且使用了大量的,被优化过的递归(设计不好的递归在命令式编程语言中会出现时间复杂度指数化的问题)。

 

     日常生活中的函数式编程:
     - C++模板元编程
     - C/C++预处理元编程
     - M4宏编程
     - Python/Perl/Ruby的列表操作
     - Vimscript的某些操作

 

 

    结构化程式设计英语Structured programming ),一种编程典范 。它采用子程序程式码区块 英语 block structures for循环 以及while循环 等结构,来取代传统的 goto 。希望借此来改善计算机程序 的明晰性、品质以及开发时间,并且避免写出面条式代码

 

    结构化程式设计在1960年代开始发展,科拉多·伯姆 英语 Corrado Böhm 朱塞佩·贾可皮尼 英语 Giuseppe Jacopini 伯姆于1966年5月在《Communications of the ACM》期刊发表论文[1] ,说明任何一个有goto指令的程式,可以改为完全不使用goto指令的程式,后来艾兹赫尔·戴克斯特拉 在1968年也提出著名的论文《GOTO陈述有害论》(Go To Statement Considered Harmful)[2] ,,因此结构化程式设计开始盛行,此概念理论上可以由结构化程式理论 所证明,而在实务上,当时也有像ALGOL 一样,有丰富控制结构的编程语言来实现结构化程式设计。

 

     C中频繁使用{}包裹语句块即为block structured思想的遗留产物。

分享到:
评论

相关推荐

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

     Ivor Horton是撰著Java、C和C++编程语言图书的杰出作家之一。大家一致认为,他的著作独具风格,无论是编程新手,还是经验丰富的编程人员,都很容易理解其内容。在个人实践中,Ivor Horton也是一名系统顾问。他从事...

    spw-js:为JavaScript编写的Spw语言的语法,解析器和运行时

    Spw是一种声明式,面向主题的非正式逻辑编程语言,它源于雄辩地描述和引用大量多模式数据的需求。 要求 它应该提供简洁的方法来描述一个概念与另一个概念之间的关系 一种。执行的输出应相对于解释上下文而言是具体...

    信息系统与数据库技术教学大纲.docx

    程序设计:学习使用编程语言访问数据库的一般流程,了解基于Web的信息系统应用程序的基本实现方法。 课程虽然知识集成度比较大,但是通过贯穿全课程的解剖麻雀式的教学、实践案例,用实例驱动学习,逐步递进,不...

    《大象 Thinking In UML》pdf版(带书签)卷3/3

    之所以《Thinking in Java》会成为经典,原因在于这本书并不是教授读者Java语言本身,而是透过Java语言深入讨论其背后的思想和方法。授人以鱼不如授人以渔。 本书是讲述UML的。同样,本书也不是一本纯粹教授UML语法...

    《大象 Thinking In UML》pdf版(带书签)卷1/3

    之所以《Thinking in Java》会成为经典,原因在于这本书并不是教授读者Java语言本身,而是透过Java语言深入讨论其背后的思想和方法。授人以鱼不如授人以渔。 本书是讲述UML的。同样,本书也不是一本纯粹教授UML语法...

    《大象 Thinking In UML》pdf版(带书签)卷2/3

    之所以《Thinking in Java》会成为经典,原因在于这本书并不是教授读者Java语言本身,而是透过Java语言深入讨论其背后的思想和方法。授人以鱼不如授人以渔。 本书是讲述UML的。同样,本书也不是一本纯粹教授UML语法...

    Effective C++ 中文版

    也不是用以解决手边问题的参考手册,而是需要您去反复阅读体会的,C++是真正程序员的语言,背后有着精深的思想与无与伦比的表达能力,这使得它具有类似宗教般的魅力。希望这本书能够帮助您跨越C++的重重险阻,领略...

    Reversing:逆向工程揭密

    第二类是从没有源代码的程序出发,生成对应的源程序、系统结构以及相关设计原理和算法思想的文档等,亦即本书重点讨论的二进制逆向工程。 本书共有13章和三个附录,涵盖了逆向工程的基础知识、应用、开发和拓展的...

    机器学习.zip

    在这背后,关键就是“统计学”思想,它所推崇的“相关而非因果”的概念是机器学习的理论根基。在此基础上可以说**机器学习是计算机使用输入给它的数据,利用人类赋予它的算法得到某种模型的过程,其最终目的是使用该...

    自己动手写操作系统(含源代码).part2

     本书以“动手写”为指导思想,只要是跟“动手写”操作系统有关的知识,都作为介绍对象加以讨论,所以,从开发环境的搭建,到保护模式,再到IBMPC中有关芯片的知识,最后到操作系统本身的设计实现,都能在本文中...

    自己动手写操作系统(含源代码).part1

     本书以“动手写”为指导思想,只要是跟“动手写”操作系统有关的知识,都作为介绍对象加以讨论,所以,从开发环境的搭建,到保护模式,再到IBMPC中有关芯片的知识,最后到操作系统本身的设计实现,都能在本文中...

Global site tag (gtag.js) - Google Analytics