即指令式编程( Imperative)
诸如 C 、Java 、Python 等;满足图灵完备
每一步都是指令;编程时需把解决问题的具体逻辑和相关结构全部实现
声明式编程 ( Declarative ) 描述目标的性质,让电脑明白目标,而非流程
函数式编程是其一个子集
诸如 Html、XSLT 、Scheme 、Clojure 、Haskell、SQL、正则表达式等;无需图灵完备
诸如 C# 、 Lisp 既可支持传统命令式编程范式,又可支持函数式编程
汇编语言 (assembly language)是一种用于电子计算机、微处理器、微控制器或其它可编程器件的低级语言
在不同设备种,汇编语言对应着不同的机器语言指令集
一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可在不同平台之间移植
特点:代码执行速度快,但是代码编写难度大,可读性差
通用语言;编写容易,代码可读性好,可移植
诸如 C 、C++ 、Pascal 等都属于编译型 ( Compiled Language )
它是编译的时候直接编译成机器可以执行的或调用的程序;如:.exe 、 .dl 、.ocx 等类型
优势: 运行速度快,代码效率高,编译后程序不可修改且看不到原码,保密性好
劣势: 代码需要经过编译方可运行,可移植性差,只能在兼容的操作系统上运行
场合: 操作系统开发、大型应用程序、图像处理、数据库开发等
诸如 Java、Javascript、python、php 等都属于解释型 ( Interpreted Language )
常用的如 Unix shell 、 Javascript、 php 、perl
脚本语言以简单的方式快速完成某些复杂的事情
语法和结构通常比较简单;易学且无需编译直接通过解释器执行代码
优势:具有小巧灵活、动态、可移植型性强;
劣势:速度缓慢、运行时更耗内存
场合:系统的命令行(shell)、web网页脚本等
Java/C# 比较特殊,严格来说既不能算编译型也不能算解释型,所以单独列出来
它们都产生并保存中间码;Java产生Java字节码,C#产生CIL,然后通过虚拟机执行中间码
其中Java的虚拟机是 JVM(包含JRE),C#的虚拟机是CLR(包含.net framework)
执行时,JVM对Java字节码解释执行,CLR对CIL解释执行
执行过程中,运用到了即时编译这个技术(运行时编译)
底层编程语言的统治者;汇编语言向高级语言的过渡,被描述为“可移植的汇编语言 ”
也是系统性设计语言;面向过程
优势:代码量小;运行速度快;功能强大
劣势:危险性高(漏洞多);开发周期长;可移植性弱(相对于Java)
场合:主流操作系统内核;如 Windows的NT内核、Unix内核、Linux内核、Mac OSX内核
? 主流高级语言的编译器、解释器 如 python、Java、C#
? 各种算法库等
目前最流行的静态面向对象编程语言( OOP )
具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点
优势:简单、安全、稳定、跨平台
? 一次编写,到处运行;多平台支持;强大伸缩性;多样化和功能强大的开发工具支持
劣势:需要运行环境、运行速度相对较慢;不适合开发桌面应用程序
? 由于跨平台,给产品增加了复杂性并且不能和底层打交道
场合:移动应用(特别是Android)、桌面应用、Web应用程序、Web服务器和应用服务器
? 数据库连接、BS( Browser-Server)架构的ERP系统、金融系统、电子商务系统、网站等
Javascript是一种基于对象(Object)和事件驱动(Event Driven)并具有相对安全性的客户端脚本语言
是基于浏览器内核位html添加生命力的脚本语言;动态解释型语言;浏览器相当于Javascript的解释器
特点:动态、弱类型、单线程、内置支持类、跨平台
优势:减少网络传输(客户端可进行数据验证)
? 方便操纵html对象(根据需求定制)
? 支持分布式运算(客户端和服务端分离)
劣势:各大浏览器厂商对Javascript支持程度不同
?
待续……
原文:https://www.cnblogs.com/newcheer/p/14289823.html