精华内容
下载资源
问答
  • 编程语言的主要类型,声明式编程,命令式编程()和函数式编程的区别
    千次阅读
    2016-12-18 11:59:07

    编程语言的主要类型

    Common programming paradigms include imperative which allows side effects, functional which disallows side effects, declarative which does not state the order in which operations execute
    (翻译:常见的编程语言类型包括允许有副作用的命令式编程,不允许副作用的函数式编程和不描述操作执行顺序的声明式编程)

    A programming paradigm is a fundamental style of computer programming. There are four main paradigms: imperative, declarative, functional (which is considered a subset of the declarative paradigm) and object-oriented.

    Declarative programming : is a programming paradigm that expresses the logic of a computation(What do) without describing its control flow(How do). Some well-known examples of declarative domain specific languages (DSLs) include CSS, regular expressions, and a subset of SQL (SELECT queries, for example) Many markup languages such as HTML, MXML, XAML, XSLT… are often declarative. The declarative programming try to blur the distinction between a program as a set of instructions and a program as an assertion about the desired answer.

    Imperative programming : is a programming paradigm that describes computation in terms of statements that change a program state. The declarative programs can be dually viewed as programming commands or mathematical assertions.

    Functional programming : is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state. In a pure functional language, such as Haskell, all functions are without side effects, and state changes are only represented as functions that transform the state.

    ( 出处:维基百科)

    翻译总结:

    编程语言主要有四种类型

    1. 声明式编程:专注于”做什么”而不是”如何去做”。在更高层面写代码,更关心的是目标,而不是底层算法实现的过程。
      ex: css, 正则表达式,sql 语句,html, xml…
    2. 命令式编程(过程式编程) : 专注于”如何去做”,这样不管”做什么”,都会按照你的命令去做。解决某一问题的具体算法实现。
    3. 函数式编程:把运算过程尽量写成一系列嵌套的函数调用。
      函数式编程强调没有”副作用”,意味着函数要保持独立,所有功能就是返回一个新的值,没有其他行为,尤其是不得修改外部变量的值。
      所谓”副作用”(side effect),指的是函数内部与外部互动(最典型的情况,就是修改全局变量的值),产生运算以外的其他结果。(详细了解函数式编程请看阮一峰的函数编程初探文章)

    举个简单的例子,了解三者区别
    1.现有这样一个数学表达式

    (1+2) * 3 / 4
    

    命令式编程可能会这样写

    var a = 1 + 2;
    var b = a * 3;
    var c = b / 4;
    

    函数式编程如下写法

    divide(multiply(add(1, 2), 3), 4)
    

    函数式编程是声明式的一种类型,声明式强调目标而不是具体过程。

    1. 我们想让一个数组里的数值翻倍。

    我们用命令式编程风格实现,像下面这样:

    var numbers = [1,2,3,4,5]
    var doubled = []
    for(var i = 0; i < numbers.length; i++) {
      var newNumber = numbers[i] * 2
      doubled.push (newNumber)
    }
    console.log (doubled) //=> [2,4,6,8,10]
    

    我们直接遍历整个数组,取出每个元素,乘以二,然后把翻倍后的值放入新数组,每次都要操作这个双倍数组,直到计算完所有元素。

    而使用声明式编程方法,我们可以用 Array.map 函数,像下面这样:

    var numbers = [1,2,3,4,5]
    var doubled = numbers.map (function (n) {
      return n * 2
    })
    console.log (doubled) //=> [2,4,6,8,10]
    

    map利用当前的数组创建了一个新数组,新数组里的每个元素都是经过了传入map的函数(这里是function (n) { return n*2 })的处理。
      map函数所做的事情是将直接遍历整个数组的过程归纳抽离出来,让我们专注于描述我们想要的是什么(what)。注意,我们传入map的是一个纯函数;它不具有任何副作用(不会改变外部状态),它只是接收一个数字,返回乘以二后的值。

    参考文章
    1.声明式编程和命令式编程的比较
    2.阮一峰的函数编程初探文章

    更多相关内容
  • 函数式编程声明语言

    千次阅读 2019-01-18 20:57:54
    编程语言可以分成两类: 命令式 声明式 事实上,凡是非命令式的编程都可归为声明式编程。因此,命令式、函数式和逻辑式是最核心的三种范式。为清楚起见,我们用一幅图来表示它们之间的关系。 与命令式编程相对...

    原文链接:https://www.cnblogs.com/doit8791/p/8232821.html

    编程语言可以分成两类:

    • 命令式
    • 声明式

    事实上,凡是非命令式的编程都可归为声明式编程。因此,命令式、函数式和逻辑式是最核心的三种范式。为清楚起见,我们用一幅图来表示它们之间的关系。

    与命令式编程相对的声明式编程(declarative programming)。顾名思义,声明式编程由若干规范(specification)的声明组成的,即一系列陈述句:‘已知这,求解那’,强调‘做什么’而非‘怎么做’。声明式编程是人脑思维方式的抽象,即利用数理逻辑或既定规范对已知条件进行推理或运算。

    声明式编程的发源

    声明式编程发轫于人工智能的研究,主要包括函数式编程(functional programming,简称FP)和逻辑式编程(logic programming,简称LP)。其中,函数式编程将计算描述为数学函数的求值,而逻辑式编程通过提供一系列事实和规则来推导或论证结论。

    其实支持它们的语言出现得并不比命令式的晚多少——最早的函数式语言Lisp(LISProcessor)已有半个世纪的历史,最早之一的逻辑式语言Prolog(PROgramming in LOGic)也与C同龄。只是由于大多数更多地用于学术研究而非商业应用,颇有些‘养在深闺人未识’的味道。

    起源的不同决定了这两大类范式代表着迥然不同的编程理念和风格:命令式编程是行动导向(Action-Oriented)的,因而算法是显性而目标是隐性的;声明式编程是目标驱动(Goal-Driven)的,因而目标是显性而算法是隐性的。为便于说明,我们分别用三种代表性的语言来实现阶乘(factorial)运算。

    阶乘的三种编程实现

    C(命令式)——

    1int factorial(int n)
    2{
    3    int f = 1;
    4    for (; n > 0; --n) f *= n;
    5    return f;
    6}

    Lisp(函数式)——

    1(defun factorial(n)
    2  (if (= n 0)
    3    1                               //  若n等于0,则n!等于1
    4    (* n (factorial(- n 1)))))      //  否则n!等于n* (n-1)

    Prolog(逻辑式)——

    1// 0! 等于1
    2factorial(0,1).
    3// 若M等于N-1且 M!等于Fm且F等于N*Fm,则N! 等于F
    4factorial(N,F) :-   M is N-1, factorial(M,Fm), F is N * Fm.

    以上三段代码区别在哪里?C明确给出了阶乘的迭代算法,而Lisp仅描述了阶乘的递归定义,Prolog则陈述了两个关于阶乘的断言。

    声明式编程的本质

    我们最早接触的变量是代数方程中的x、y、z等,本质上是抽象化的符号,变量值是该符号在给定约束条件下的允许值。而命令式编程中的变量本质上是抽象化的内存,变量值是该内存的储存内容。通俗地说,前者好比姓名,所指之人是固定的;后者好比住址,所住之人是变化的。此外,等号在代数中是一种约束,而在许多命令式语言中则表示赋值。因此 i = i + 1 可以在命令式编程中出现,但绝不可能在数学推理中出现 —— 除非在反证法中。

    声明式编程让我们重回数学思维:函数式编程类似代数中的表达式变换和计算,逻辑式编程则类似数理逻辑推理。其中的变量也如数学中的一样,是抽象符号而非内存地址,因此没有赋值运算,不会产生变量被改写的副作用(side-effect),也不存在内存分配和释放的问题。这既简化了代码,也减少了调试——不妨想一想,有多少bug是由于某个变量被意外改写或内存管理不慎而造成的?

    声明式语言与命令式语言的相通之处

    • 首先,所有高级语言都建立于低级语言之上,最终转化为机器语言,声明式语言也不例外。
    • 其次,声明式语言与命令式语言并非泾渭分明,而是互相交叉渗透的。一些‘非纯粹’ 的声明式语言也提供变量赋值和流程控制,而一些命令式语言也在逐渐发展,通过利用其他程序或增加新的语言特征来实现声明式编程。

    总的说来,在命令式语言中融入声明式的元素应当是一种趋势。尤其是函数式,它的一些特征已经在许多命令式语言中得到了支持。比较而言,声明式编程重目标、轻过程,专注问题的分析和表达而不致陷入算法的迷宫,其代码也更加简洁清晰、易于修改和维护。从这种意义上说,声明式语言天然地就比命令式语言更高级。

    •  

      既然声明式编程有这么多好处,为什么命令式语言不仅占大多数,而且流行程度也不减呢?

    •  

      编程语言的流行程度与其擅长的领域关系密切。声明式语言——尤其是函数式语言和逻辑式语言——擅长基于数理逻辑的应用,如人工智能、符号处理、数据库、编译器等,对基于业务逻辑的、尤其是交互式或事件驱动型的应用就不那么得心应手了。而大多数软件是面向用户的,交互性强、多为事件驱动、业务逻辑千差万别,显然命令式语言在此更有用武之地。

    值得指出的是,声明式编程并不仅仅局限于函数式和逻辑式。比方说,C#中的attribute、Java中的annotation和XDoclet库等采用的也是具有声明式特征的属性导向式编程(Attribute-Oriented Programming,简称@OP)。再比如,Prograph、SISAL等数据流语言(dataflow language)采用的数据流式编程(Dataflow Programming)与函数式编程有不少共同点,同样属于声明式的范畴。还有一些语言如Oz、CHIP等支持与逻辑式编程相交的约束式编程(Constraint Programming)。此外,大家熟悉的数据库语言SQL,样式语言XSLT、CSS,标记语言HTML、XML、SVG,规范语言IDL(Interface Description Language)等等都是声明式的。算上它们,声明式语言所占的比例也是非常可观的。此前之所以没有提及,一方面,不少声明式语言采用的范式并没有专门的名称;另一方面,这些语言大多是领域特定语言,并且不少并非图灵完备的,有的连运算都没有。毕竟,目前我们的重点还是放在通用编程语言上。

    其实用Lisp实现阶乘的方法也可以用在C上:

    1int factorial(int n)
    2{
    3    return n == 0 ? 1 : n * factorial(n - 1);
    4}

    这是C的递归实现。除了细微的语法差别外,二者的确很相似,这说明用命令式语言也可以讲出声明式的味道。实际上,命令式语言提倡迭代而不鼓励递归,早期的Fortran 甚至都不支持递归。一则迭代比递归更符合命令式的思维模式,因为前者贴近机器语言而后者贴近数学语言;二则除尾递归(tail recursion)外,一般递归比迭代的开销(overhead)大。相反,声明式语言提倡递归而不支持迭代。就语法而言,它不允许迭代中的循环变量;就视角而言,迭代着眼微观过程而递归着眼宏观规律。

    具体可以看看这个:漫谈递归

    归根结底,编程是寻求一种机制,将指定的输入转化为指定的输出。三种范式对此提供了截然不同的解决方案:

    • 命令式把程序看作一个自动机,输入是初始状态,输出是最终状态,编程就是设计一系列指令,通过自动机执行以完成状态转变;
    • 函数式把程序看作一个数学函数,输入是自变量,输出是因变量,编程就是设计一系列函数,通过表达式变换以完成计算;
    • 逻辑式把程序看作一个逻辑证明,输入是题设,输出是结论,编程就是设计一系列命题,通过逻辑推理以完成证明。

    绘成表格如下:

    范式程序输入输出程序设计程序运行
    命令式自动机初始状态最终状态设计指令命令执行
    函数式数学函数自变量因变量设计函数表达式变换
    逻辑式逻辑证明题设结论设计命题逻辑推理

     

    http://www.nowamagic.net/academy/detail/1220525

    • 命令式编程通过一系列改变程序状态的指令来完成计算,声明式编程只描述程序应该完成的任务。命令式编程模拟电脑运算,是行动导向的,关键在于定义解法,即“怎么做”,因而算法是显性而目标是隐性的;声明式编程模拟人脑思维,是目标驱动的,关键在于描述问题,即“做什么”,因而目标是显性而算法是隐性的。
    • 函数式编程通过数学函数的表达式变换和计算来求值。
    • 逻辑式编程通过一系列事实和规则,利用数理逻辑来推导或论证结论。
    • 命令式编程中的变量代表抽象化的内存,所存内容可能改变。声明式编程中的变量代表抽象化的符号,所指对象一般不会改变。
    • 声明式编程专注问题的分析和表达而不是算法实现,不用指明执行顺序,一般没有或极少副作用,也不存在内存管理问题。这些都大大降低了编程的复杂度,同时也非常适合于并发式计算。
    • 编程语言的流行程度与其擅长的领域密切相关。函数式语言和逻辑式语言擅长基于数理逻辑的应用,命令式语言擅长基于业务逻辑的、尤其是交互式或事件驱动型的应用。
    • 声明式语言与命令式语言之间并无绝对的界限,它们均建立于低级语言之上,并且互相渗透融合。
    • 在命令式语言中引入函数或过程,是一种向声明式风格的趋近。
    • 编程是寻求一种机制,将指定的输入转化为指定的输出。
    • 三种核心编程范式采用如下不同的机制:
      • 命令式:自动机机制,通过设计指令完成从初始态到最终态的转变。
      • 函数式:数学变换机制,通过设计函数完成从自变量到因变量的计算。
      • 逻辑式:逻辑证明机制,通过逻辑推理完成从题设到结论的证明。 
    展开全文
  • C语言与汇编语言混合编程声明规则.pdf
  • Red 是一门新的编程语言,它受到了 REBOL 很大的启发,但由于它有本地代码编译器,Red 的应用领域更加广泛——下到系统编程上到高级脚本,同时提供了对现代的多核 CPU 并发编程的支持。 主要特点为: 函数式、声明...
  • 常用编程语言简介大全

    千次阅读 2020-05-19 15:42:55
    一、计算机编程语言分类;二、高级语言分类;三、常用语言的用途

    一、计算机编程语言分类

    机器语言(面向机器)——>汇编语言(面向机器)——>高级语言(面向过程——>面向对象)

    (1)机器语言属于低级语言。
    由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令。
    全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。
    (2)汇编语言
    实质和机器语言相同,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
    (3)高级语言
    高级语言是相对于汇编语言而言,编写的程序不能直接被计算机识别,必须经过转换才能被执行。

    越是低级的语言对机器越是友好,越是符合机器的思考方式,因此执行效率高。
    越是高级的语言对人类越是友好,越是符合人类的思考方式,因此开发效率高。
    

    常用编程语言及其用途

    C:操作系统、嵌入式、驱动开发

    C++:图形图像、科研、通信、桌面软件、游戏、游戏服务器

    C#:Windows桌面软件、.NET Web、服务器

    Java:
    Java SE:跨平台的桌面应用,Android;
    Java EE:企业级应用,web开发、服务器后端;
    Java ME:手机应用、流行于非智能机时代;
    Java Android:用于安卓开发应用

    GO:高性能服务器应用,比较年轻

    Erlang:高并发服务器应用,多用于游戏

    Python:Web、科学计算、运维

    Ruby:Web

    Perl:运维、文本处理,用的较少

    Lisp:科研,一种逻辑语言,用于人工智能

    Node:一个JavaScript运行环境(runtime)

    Haskell:Haskell是一种标准化的、通用纯函数编程语言,数学逻辑方面

    Scala:一种类似Java的编程语言,集成面向对象编程和函数式编程的各种特性

    JavaScript:前端,在node中可以做后端

    HTML/CSS:标记语言,主要是给前端工程师构建页面使用

    二、高级语言分类

    (0)命令式语言 & 函数式语言 & 逻辑式语言

    命令式语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生操作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如 Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型

    函数式语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如 Lisp、Haskell、ML、Scheme 、F#等。

    逻辑式语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是 Prolog 。

    (1)编译型语言 & 解释型语言 :两者只是翻译的时间不同

    编译型语言:由于程序执行速度快,同等条件下对系统的要求比较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,如 C、C++、Fortran、Pascal、Delphi 、汇编…

    在程序执行前,有一个单独的编译过程,将源程序—>机器语言,生成一个可执行程序 .exe,使用的转换工具称编译器。
    以后再执行这个程序时,就直接用exe文件,不用再进行翻译了,所以效率较下者高。
    

    解释型语言:运行速度较前者慢。如Python、JavaScript、VBScript、Tcl、Perl、Ruby、MATLAB …脚本语言!

    每次执行程序都要一边转换一边执行,用到哪些源代码就将哪些源代码转换成机器码,用不到的不进行任何处理。
    每次执行程序时可能使用不同的功能,这个时候需要转换的源代码也不一样。
    不会生成可执行程序,使用的转换工具称解释器。
    

    因为每次执行程序都需要重新转换源代码,所以解释型语言的执行效率天生就低于编译型语言,甚至存在数量级的差距。计算机的一些底层功能,或者关键算法,一般都使用 C/C++ 实现,只有在应用层面(比如网站开发、批处理、小工具等)才会使用解释型语言。

    有说JAVA是混合型,也有说是解释型。 和 C# 都属于半编译半解释型的语言,源代码先转换为中间文件(字节码文件)再转换。

    (2)强类型语言(静态语言) & 弱类型语言(动态语言)

    强类型:如JAVA,C,C++,C#
    优点:静态语言由于强制声明数据类型,让开发工具(IDE)对代码有很强的判断能力,在实现复杂的业务逻辑和开发大型商业系统、以及那些声明周期很长的应用中,开发者可以依托强大的IDE来更高效、更安全地开发。

    是编译时变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须生命数据类型。
    

    弱类型:如超级脚本语言Python,Ruby…脚本语言JavaScript,VBScript,PHP,ASP,Perl,SQL,Shell…HTML…宏语言…
    优点:动态语言思维不受约束,可以任意发挥,把更多的精力放在产品本身上;集中思考业务逻辑实现,思考过程就是实现过程。

    是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型。
    

    (3)面向过程型 & 面向对象型

    面向过程:C;Fortran语言主要用于编写与数值计算有关的程序,广泛应用于科学和工程计算领域。

    面向对象的发展有两个方向:一种是纯面向对象语言,如Smalltalk、EIFFEL、JAVA、C# 等;另一种是混合型面向对象语言,即在过程式语言及其它语言中加入类、继承等成分,如C++、Python、 Objective-C等。

    (4)脚本语言

    又称为扩建的语言,是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。
    脚本语言(JavaScript,VBScript,Python,PHP,Perl,Ruby等)介于标记语言HTML和编程语言C,C++,Java,C#等之间。
    辨别:
    脚本语言的特点是语法简单,一般以文本形式保存,并且不需要编译成目标程序,在调用的时候直接解释。这可以当做是脚本语言的判断标准,比如道说JavaScript,你只需要用记事本新建一个Html文件,在里面加上一段脚本就可以了,在浏览器打开Html文件时自然会调版用JS脚本。总之你能用记事本写出程序,不需要编译环境权生成目标程序的基本上就是脚本语言。

    (5)标记语言
    常见HTML,XML…(一般分三类:标示性的,过程性的,描述性的)
    是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。

    区别:

    1、标记语言不用于向计算机发出指令,常用于格式化和链接。
    2、脚本语言介于标记语言和编程语言之间,脚本语言脚本语言不需要编译,可以直接用,由解释器来负责解释。
    3、编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

    展开全文
  • 编程语言用途及分类

    千次阅读 2020-12-01 19:50:37
    1 常用编程语言汇总及其用途 C:操作系统、嵌入式、驱动开发 C++:图形图像、科研、通信、桌面软件、游戏、游戏服务器 C#:Windows桌面软件、.NET Web、服务器 Java: Java SE:跨平台的桌面应用,Android;Java...

    1 常用编程语言汇总及其用途

    • C:操作系统、嵌入式、驱动开发
    • C++:图形图像、科研、通信、桌面软件、游戏、游戏服务器
    • C#:Windows桌面软件、.NET Web、服务器
    • Java: Java SE:跨平台的桌面应用,Android;Java EE:企业级应用,web开发、服务器后端;Java ME:手机应用、流行于非智能机时代;Java Android:用于安卓开发应用
    • GO:高性能服务器应用,比较年轻
    • Erlang:高并发服务器应用,多用于游戏
    • Python:Web、科学计算、运维
    • Ruby:web
    • Perl:运维、文本处理,用的较少
    • Lisp:科研,一种逻辑语言,用于人工智能
    • Node:一个JavaScript运行环境(runtime)
    • Haskell:Haskell是一种标准化的、通用纯函数编程语言,数学逻辑方面
    • Scala:一种类似Java的编程语言,集成面向对象编程和函数式编程的各种特性
    • Javascript:前端,在node中可以做后端
    • HTML/CSS:标记语言,主要是给前端工程师构建页面使用

     

     

    2 编程语言的分类

    1、高级语言和低级语言:

    • 高级语言: C、C++、Java、Python、Pascal、Lisp、Prolog、FoxPro、易语言等都是高级语言,相对于低级语言来说,高级语言采用易于识别和记忆的字符来作为关键字,也更接近人类的思维方式,编写容易读写性好,开发效率更高。

    a=a+b 的表达方式:

    int a;
    int b;
    a=a+b;

    重点是,高级语言是可移植的,做少量修改甚至无需修改,即可将代码运行在不同平台的计算机上。

    • 低级语言(包括机器语言和汇编语言) :

    机器语言:

    计算机硬件只能识别“断开”和“闭合”两种物理状态,也就是0和1。使用机器指令效率最高,因为无需对指令进行翻译。但是机器语言对人类不友好,一大串0和1,很难识别和记忆,且容易出错。

    但是对于机器来说,秒懂。

     

    汇编语言:

    汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的 操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

    汇编语言采用人类容易记忆和识别的助记符来代表一些0和1的指令,比如AND代表加法。

    a=a+b 的表达方式:

    MOV AX,2
    MOV BX,3
    ADD AX,BX
    越是低级的语言对机器越是友好,越是符合机器的思考方式,因此执行效率高。
    越是高级的语言对人类越是友好,越是符合人类的思考方式,因此开发效率高。

     

    2、编译型语言和解释型语言(相对于高级语言而言)。

    高级语言的可移植性是基于编译或者解释这个过程,对人类友好的高级语言只有经过处理才能被操作系统识别并加载到计算机硬件上最终执行。

    高级语言的编译解释都是面向操作系统而言,并非面对计算机硬件。

    编译型语言

    编译就是把一个事先编好的叫做“编译程序”的机器语言程序安装在计算机内,当需要执行高级语言程序时,编译程序就把整个“高级语言的源程序”翻译成“机器语言的目标程序”。

    解释型语言

    高级语言进入计算机后,解释程序一边扫描一边解释,逐句输入逐句翻译,计算机一行一行执行,并不产生目标程序。

    比如JAVA就是一种解释型高级语言。

     

    3、强类型语言(静态态语言)和弱类型语言(动态语言)

    强类型语言(静态语言):是编译时变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须生命数据类型。比如Java、C、C++、C#等。

    String s="hello";    //String 类型的变量
    boolean b=true;    //boolean 类型的变量
    int i=0;    //int 类型的变量

    弱类型语言(动态语言):是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型。比如Php、Asp、JavaScript、Python、Perl等等。

    var s ="hello";
    var i = 0;
    var b = true;
    弱类型语言是数据类型可以被忽略的语言。它与强类型语言相反,一个变量可以赋不同数据类型的值。一个变量的类型是由其上下文决定的,效率更高。
    强类型语言是必须强制确定数据类型的语言,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这种数据类型。一个变量的类型是申明的时候就已经确定的,更安全。
    静态语言由于强制声明数据类型,让开发工具(IDE)对代码有很强的判断能力,在实现复杂的业务逻辑和开发大型商业系统、以及那些声明周期很长的应用中,开发者可以依托强大的IDE来更高效、更安全地开发。
    动态语言思维不受约束,可以任意发挥,把更多的精力放在产品本身上;集中思考业务逻辑实现,思考过程就是实现过程。
    展开全文
  • 适合人工智能的编程语言有哪些

    千次阅读 2021-12-08 15:26:51
    编程语言是人工智能开发项目的支柱,有了它的帮助,软件开发人员才可以在不用通晓仅用于科学家相互交流的高度专业化语言的情况下而创建出新的 AI 解决方案。 那么,人工智能在全球各行业中的使用率如何? AI 在...
  • 如何开发一门编程语言

    千次阅读 2021-02-19 14:23:40
    一、构思 首先,你要考虑这是动态语言还是静态语言,然后去想它面向什么,如Web开发,面向对象的程序设计等。...声明变量 + - * / 计算 (函数类型) (函数名){执行内容} 定义函数 return 返回值 while
  • 主流编程语言简述

    千次阅读 2020-08-05 18:04:28
    本文将简要的介绍一些主流的编程语言,对于一些没有列举到的,因为真的太多了,如果真的感兴趣,不放自己查一下它。本文介绍的编程语言简述的内容来自John Sonmez《软技能2 软件开发者职业生涯规划》和一些网上资源...
  • 【总结】编程语言的分类

    千次阅读 多人点赞 2020-03-16 12:00:30
    一、计算机编程语言的分类 1、低级语言 机器语言(二进制代码)、汇编语言(面向机器的程序设计语言)和符号语言。汇编语言源程序必须经过汇编,生成目 标文件,然后执行。 机器语言优缺点如下: ...
  • 很多人喜欢争论什么什么编程语言好,我认为这个话题如果不限定应用范围,就毫无意义。本文引用地址:http://www.eepw.com.cn/article/201805/379381.htm每种编程语言必然有其优点和缺点,这也决定了它有适合的应用...
  • 世界著名软件质量评估机构TIOBE推出了2010年10月最新编程语言排名来了!Python成为最大的赢家,力压C、C++和Java三大主力语言,以11.27%的评级跃居到排行榜首位,成为20多年来的新语言霸主!排名前10的一次为:...
  • 最近十年诞生的6种新编程语言

    千次阅读 2020-05-11 19:02:58
    当涉及到编程语言,进展不会停滞不前。虽然Python、C、Java等最有影响力的语言是很久以前创建的,但新的有价值的编码语言却时时刻刻出现。在许多用例中,正是新的编程语言推动了创新,帮助构建了真正令人惊叹的软件...
  • 十大热门编程语言的介绍

    万次阅读 2019-03-30 09:44:07
    小编给大家分享一篇关于现阶段十大热门编程语言的文章:经过流行的搜索引擎,如谷歌,必应,雅虎,维基百科,亚马逊,YouTube和百度,用于计算评级;得出十大热门编程语言排行榜的榜单: 根据百度百科以及网上查阅...
  • 编程语言 - 强弱/动静态类型

    千次阅读 2020-04-28 12:35:58
    了解编程语言的分类及显著的区别, 帮助理解编程语言的本质,和帮助快速学习一门新的语言.
  • AI人工智能的5种绝佳编程语言

    千次阅读 2020-06-18 16:52:17
    是的,你没看错,没有一种单独的“ AI语言”可以被视为最佳编程语言。 因此,让我们讨论一些流行的语言,这些语言正在全球AI项目中流行和使用。了解这些可以帮助你尽快成为更专业的AI工程师。 1)Python: 在AI...
  • 一、python是什么编程语言编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每个分类代表什么意思呢?1.1、编译型与解释型编译器:是把源程序的每一条...
  • Arduino入门-Arduino编程语言入门教程

    千次阅读 2020-12-08 16:14:34
    随着社会的发展,越来越多的中小学生、老师、创客们、设计师、艺术家等都在玩Arduino,那Arduino编程语言入门难吗?我们都知道Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的...
  • 人工智能ai用什么编程语言 如今,人们期望AI程序员掌握多种语言,因为它们是在跨学科环境中而不是在孤岛中工作。 该列表为Python,R,Java,Lisp,Prolog,Julia等。 尽管当前这一代人更喜欢Python,但是前端开发...
  • 另一方面,也有许多编程语言声明性样式,包括函数语言和逻辑语言,还包括通用语言和专用语言。 让我们列出几个属于各个种类的语言。许多读者已经使用过这些工具中的许多工具,但不见得考虑过它们之间的种类差别。...
  • 本文是《打破国外垄断,开发中国人自己的编程语言》系列文章的第1篇。本系列文章的主要目的是教大家学会如何从零开始设计一种编程语言(marvel语言),并使用marvel语言开发一些真实的项目,如移动App、Web应用等。
  • 一、世界编程语言排行榜 TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、MSN、Yahoo!、...
  • 声明编程的优点

    千次阅读 2018-10-29 09:32:39
    SQL是一种声明性质的编程语言。而所谓声明性质的语言是说,你不再需要告诉电脑你需要怎么做,你只需要告诉你的电脑需要作什么就好了。 两段类比 例如你想从一个一个数组中找到所有大于0的数,在类C语言(一种伪代码)...
  • 常见编程语言

    万次阅读 2019-03-16 16:04:39
    编程语言排行榜 TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,只是反映某个编程语言的热门程度,并...
  • 编程语言介绍与分类

    万次阅读 多人点赞 2019-04-16 11:31:52
    什么是编程?为什么要编程编程 是个动词,编程==写代码,写代码为了什么? 为了让计算机干你想要干的事情,比如,马化腾想跟别人聊天,于是写了个聊天软件,这个软件就是一堆代码的集合,这些代码是什么?这些...
  • 设计一款编程语言有多难?

    千次阅读 2020-09-18 19:13:34
    作者 |DAVID CASSEL译者 | 弯月,责编 |郑丽媛题图 | 自视觉中国来源 | CSDN(ID:CSDNnews)最近,Ruby编程语言的创始人兼主设计师、云平台即服务公...
  • 自制中文编程语言一(语言设计一)

    千次阅读 多人点赞 2020-03-20 10:49:45
    自制中文编程语言一一、语言设计    1. 设计目的:    2. 设计目标:    3. 代码规则 一、语言设计     1. 设计目的:  &...
  • 以下是在您的应用程序中使用 Python 编程语言的一些优点和缺点: 优点 用途广泛、开发速度快、易于使用 你可以用更少的代码做更多的事情 种类繁多的图书馆 缺点 不是移动环境的原生 比其他编程语言慢 内存消耗非常高...
  • 标准工业控制编程语言IEC61131-3简述

    千次阅读 2021-01-19 14:37:21
    IEC61131-3定义了PLC的软件结构、编程语言和程序执行方式,它综合了世界上广泛流行的编程语言的特定,并使其成为一种面向未来的PLC编程语言。 IEC61131-3提供了5种PLC的标准编程语言,其中有3种图形语言:梯形图(LD...
  • PLSQL编程语言

    千次阅读 2018-08-17 23:52:55
    PL/SQL编程语言 PL/SQL(Procedure Language/SQL) PL : P 过程化 L 语言 SQL:结构化查询语言 PLSQL 是 Oracle 对 sql 语言的过程化扩展, 指在 SQL 命令语言中增加了过程处理语句(如分支、循环等), 使 SQL ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 447,244
精华内容 178,897
关键字:

编程语言的声明