计算模型:源于对计算过程的不同认识;

1.基于不同计算模型一般分为://教科书的一般分类

  • 命令式语言;
  • 函数式语言;
  • 逻辑式语言;
  • 面向对象程序设计语言;

2.基于程序本质分类:  //编程的经典法则:算法+数据结构=程序

  • 命令式:   //基于数据结构

    • 结构化编程(冯诺依曼:计算机系统以存储和处理为核心)【面向存储的编程】;
    • 面向对象编程;
  • 说明式:   //基于算法
    • 函数式;
    • 其他;

命令式语言面临的问题:如何抽象数据存储;

结构化编程:通过运算去改变内存;

  • 结构:

    • 控制结构:顺序,分支,循环;
    • 组织结构:表达式,语句行,语句块,过程,单元,包等;
    • 数据结构(命令式语言所关注的存储):基本数据结构,复合数据结构;
  • 问题:
    • 数据具体含义与关系;
    • 面向数据存储形式的算法,脱离使用环境,算法结构也缺乏通用性;
    • 僵化的类型和逻辑影响业务逻辑表达;

 面向对象编程:对象系统:数据/行为/关系

  • 优化:

    • 更加细化的可见性设定,更好的数据封装性及数据域管理;
    • 使用继承解决通用性;
    • 使用多态解决业务逻辑冲突;
  • 对象是更高层次的数据抽象,但它仍是对以结构的认可而不是以对算法的认可为前提的;//所以仍然是在结构影响算法当中;

面向接口的编程方法:

  • 接口更高层次的抽象,只暴露数据体的逻辑行为能力,而不暴露这种能力的实现方法和基于的数据特性;
  • 接口基于的原则并不是结构确定则算法确定,而是在共同的规约描述下的算法功能的确定;

3.多范型语言:具有交叉分类特性的语言;其中JS支持函数式,命令式和(基于原型)面向对象;

js:语言精髓笔记5----语言分类的更多相关文章

  1. js:语言精髓笔记12--动态语言特性(2)

    对于括号内: 通过赋值时发生的重写: (Object1 = function() {}).prototype.value = 100; var obj1 = new Object1; console. ...

  2. js:语言精髓笔记11--动态语言特性(1)

    语言:程序最终被表达为数据(结构)和逻辑(算法),命令式和说明式/函数式语言分别从这两方面分类: 动态:在语言陈述时无法确定,必须在计算机执行时才能确定语言关系:JS是完全动态语言,导致其不确定性一般 ...

  3. js:语言精髓笔记9--函数式语言特征

    形式化运算系统的研究: 图灵:提出图灵机形式系统,通过0,1运算系统来解决复杂问题: 冯诺依曼:提出了冯诺依曼体系:即通过修改内存反映运算结果: 阿隆左.丘奇:提出新的运算范型Lambda演算,计算机 ...

  4. js:语言精髓笔记8--对象系统

    封装: 一把对象系统,封装是由语法解析来实现的,即语法作用域:但js是动态语言,因此只能依赖变量作用域: js的变量作用域只有表达式,函数,全局三种:所以js只能实现public和private两种封 ...

  5. js:语言精髓笔记7----原型继承

    面向对象有三个基本特性:封装,继承,多态:如果都满足的话称为面向对象语言:而部分满足则称为基于对象语言: 数据类型实现模型描述: JavaScript对象模型: 构造过程:函数->构造器 构造器 ...

  6. js:语言精髓笔记1--标识符与基本类型

    标识符: 命名: 语法以及类型----语法关键字                                           //逻辑 值(的存储位置)----变量和常量           ...

  7. js:语言精髓笔记3----语句

    JS语句分类:(注意语句都是有返回值的) 声明语句: 变量声明语句: 标签声明语句: 函数声明语句: 表达式语句:(表达式加分号) 变量赋值语句:具有声明一个变量的隐式效果: 函数调用语句; 属性赋值 ...

  8. js:语言精髓笔记2--表达式

    表达式:由运算符和运算元构成:JS中没有运算符的表达式称为单值表达式:没有运算元,孤立与代码上下文的运算符是不符合语法的:(表达式是有返回值的) 单值表达式: this引用: 变量引用: 直接量: n ...

  9. js:语言精髓笔记10--闭包

    闭包:  //JS函数式风格中,在内部保存数据和对外无副作用这两个特性主要就是通过闭包实现的: 函数与闭包: 一个函数是一段静态代码,它是一个代码书写时已经编译期,静态概念:闭包是函数在代码运行过程中 ...

随机推荐

  1. detours安装和使用

    http://blog.csdn.net/evi10r/article/details/6659354 http://blog.csdn.net/donglinshengan/article/deta ...

  2. POJ 3020 Antenna Placement

    Antenna Placement Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5645 Accepted: 2825 Des ...

  3. php面试题之三——PHP语言基础(基础部分)

    三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...

  4. [BZOJ3672][UOJ#7][NOI2014]购票

    [BZOJ3672][UOJ#7][NOI2014]购票 试题描述  今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会.       ...

  5. [UOJ#131][BZOJ4199][NOI2015]品酒大会 后缀数组 + 并查集

    [UOJ#131][BZOJ4199][NOI2015]品酒大会 试题描述 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个 ...

  6. DICOM:DICOM3.0网络通信协议

    转载:http://blog.csdn.net/zssureqh/article/details/41016091 背景: 专栏取名为DICOM医学图像处理原因是:博主是从医学图像处理算法研究时开始接 ...

  7. Python Template 错误

    ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is und ...

  8. (0,eval)('this')与eval的区别

    看doT源码的时候,看到了这么一句代码: global = (function(){ return this || (0,eval)('this'); }()); global.doT = doT; ...

  9. Linux 系统安全 抵御TCP的洪水

    抵御TCP的洪水 分类: LINUX tcp_syn_retries :INTEGER默认值是5对 于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃.不应该大于255,默认值是5,对应于1 ...

  10. 腾讯新浪通过IP地址获取当前地理位置(省份)的接口

    腾讯新浪通过IP地址获取当前地理位置(省份)的接口  腾讯的接口是 ,返回数组 http://fw.qq.com/ipaddress 返回值 var IPData = new Array(" ...