首页
学习
活动
专区
工具
TVP
发布

函数式编程与面向对象编程: 静态类型语言的表达力 静态类型语言动态类型语言函数式编程与面向对象编程: 静态类型语言的表达力 静态类型语言动态类型语言

函数式编程与面向对象编程[2]: 静态类型语言的表达力 静态类型语言动态类型语言 之剑 2016.5.3 21:43:20 ---- 像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑、开发大型商业系统...有三个名词容易混淆: Dynamic Programming Language (动态语言动态编程语言) Dynamically Typed Language (动态类型语言) Statically...3 动态类型语言的表达力 动态语言通常更方便开发较小的项目,因为可以无需声明类型而节省了很多麻烦。...另外一个答案是,动态类型解除了程序员的束缚,可以最大的 发挥程序员的编程技能,能最有效的利用编程语言里的各种特征和模式。...其实我个人认为: 动态类型语言,特别是高级动态类型语言,反而能够让人们不需要分心去考虑程序编程问题,而集中精力思考业务逻辑实现,即思考过程即实现过程,用DSL描述问题的过程就是编程的过程,这方面像Unix

1.3K10

静态语言动态语言

奥义: 动态语言(弱类型语言): 在运行时,才确定数据类型,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型。...静态语言(强类型语言): 在编译时,变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须声明数据类型。如Java、C、C++、C#... 运行时,结构不可变的语言。...Java是静态语言,但是Java也可以称为“准动态语言”。因为在Java具有一定的动态性,我们可以通过反射机制、字节码操作获得类似动态语言的特性。 补充: 弱类型语言是数据类型可以被忽略的语言。...强类型语言是必须强制确定数据类型的语言,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这种数据类型。一个变量的类型是申明的时候就已经确定的,更安全。...动态语言思维不受约束,可以任意发挥,把更多的精力放在产品本身上;集中思考业务逻辑实现,思考过程就是实现过程。

2.6K50
您找到你想要的搜索结果了吗?
是的
没有找到

动态语言-Python1.动态语言的定义

1.动态语言的定义 动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用。...它是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。...例如JavaScript便是一个动态语言,除此之外如PHP、Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。...所以,玩动态语言的时候,小心动态的坑! 那么怎么避免这种情况呢?请使用__slots__, 5....__slots__ 动态语言与静态语言的不同 动态语言:可以在运行的过程中,修改代码 静态语言:编译时已经确定好代码,运行过程中不能修改 如果我们想要限制实例的属性怎么办?

69120

6.计算机语言的发展 编程语言发展 编程语言类型 为什么会有编程语言 编程语言什么作用 机器语言 高级语言分类 编程语言历史 编程语言有哪些 编程语言编年史

语言 计算机语言指用于人与计算机之间通讯的语言,也即是平时说的编程语言 编程 指令的概念很早就形成了,其实指令本身就是一种编程 一个指令替代了一组逻辑电路或者机电式/机械式中的一个计算单元 你只需要一个指令就相当于已经操作了一整个的模块...这不也是一种编程的思维吗,只不过是指令对应硬件 随着指令在现代计算机中的应用,计算机程序得以快速的发展 因为一旦你知道计算机可以执行哪些指令,其实也就是哪些功能,具有哪些能力 你就可以把这些指令按照一定的逻辑顺序重排组装...不同的机器有不同的汇编语言 需要汇编程序翻译成计算机可以识别的二进制机器语言 本质还是面向机器的低级语言 机器语言和汇编语言都是面向硬件的具体操作的,语言对机器过分依赖,所以称之为低级语言 高级语言...为了能够更加通用的解决问题,而不是专注于硬件本身,出现了高级语言 高级语言不用关注机器的指令,使用接近人习惯的自然语言和数学语言符号 能够专注于问题本身的业务逻辑 显然高级语言也是不能直接运行于机器上的...,需要翻译程序转换为机器可以执行的目标代码程序 虽然高级语言不涉及寄存器这些东西,不需要你了解硬件 但是这是高级语言隐藏了她们,而不是说这些东西不存在不重要,所有的语言都逃不过这一关 始终是要编程机器语言

15.3K20

编程语言的弱类型、强类型、动态类型、静态类型的解释

编程语言的弱类型、强类型、动态类型、静态类型的解释 一、弱类型和强类型的区别 ​ 弱类型语言和强类型的语言的区分点,在于 是否支持隐形类型转化 越支持隐式类型转化,越是弱语言类型; 越不支持隐式类型转化...这种类型转换是由编程语言或数据库系统自动执行的,目的是使表达式能够顺利地进行计算或赋值。...二、动态类型和静态类型的区别 很多初学者很容易把这两个概念和弱类型,强类型的概念混淆,其实这是两个完全不同方向上的概念 静态类型语言: 是指在编译时变量的数据类型必须确定的语言,静态类型语言要求在使用变量之前必须声明该变量的数据类型...动态类型语言: 是在运行时确定数据类型的语言。变量使用之前不需要类型声明,如python中,变量a=1,则a的类型就是整型,若a=”abc”,a的类型就是字符串。...三、总结 类型名 类型特点 强类型 不支持静态类型转化 弱类型 支持静态类型转化 静态类型 变量使用前需声明数据类型,程序运行过程中 数据类型不允许改变 动态类型 变量使用前不需要声明数据类型,程序运行过程中

4210

编程语言傻傻分不清:弱类型、强类型、动态类型、静态类型

有时候去面试,像iOS开发岗位,面试官会顺着运行时和动态性往下问,如果你不知编程语言的一些基本知识就懵逼了!作为一个开发者,你连弱类型、强类型、动态类型、静态类型语言傻傻分不清吗?...这篇文章综合介绍了四种分类,特别地,为了方便大家快速有效的学习,笔者尝试用思维导图的办法描述编程语言的区别。一般来讲,看第一个图就够了。但如果你想更深入地了解,也可以参考下面的文字表述。...---- 一、看图区别编程语言 作者:陈满iOS ? ---- 二、语法角度的文字表述 作者:Kaiye Chang 1....四种语言分类及其区别 动态类型语言(Dynamically Typed Language): 运行期间才做数据类型检查的语言,即动态类型语言编程时,永远不用给任何变量指定数据类型。...举例说明 Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言) ---

5.5K31

人类语言遇上编程语言

编程语言之间的相似之处比人们乍看上去的还要多得多。这意味着如果你很了解某一门编程语言,学习其他编程语言(至少同类型的编程语言)就变得十分容易。...这也就是为什么好的软件公司在招人的时候并不十分介意你是否已经掌握了他们所需的编程语言技能,他们会转而去看你了解多少门编程语言,期望在你的简历上看到你已经掌握了许多足够多样化的编程语言,此时学习一门新语言对于你来说并非难事...了解一门编程语言意味着你了解如何在程序中自如地使用这些控制结构和控制流来表达思想。 不同编程语言之间的语法可能会有些许不同,但是编程语言之间基本的表达式大体是一样的。...一门没人愿意使用的编程语言能好到哪去? 在编程语言的表达能力和简洁程度上做出权衡是一门艺术。...谈到自然语言编程语言之间的差异,编程语言比自然语言更加严格,对错误的容许程度更低。这是因为人类语言具有显著的内置冗余机制,容许我们使用上下文来消除歧义。

10.7K60

编程语言分类

编程语言分类 编程语言就是人与计算机交流的介质 机器语言 计算机是通过高低电平来进行控制的,它只认识0和1,所以在最开始,在编程的时候都是使用0和1编写,这样可以直接操控计算机进行工作。...这个语言就是机器语言 优点:执行效率高 缺点:开发效率极低 汇编语言 汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成一个英文单词 优点(较于机器语言):开发效率高一点 缺点(较于机器语言):...执行效率低 高级语言 因为机器语言和汇编语言都是最接近底层的语言,对于一般人来说就跟天书一样,看都看不懂,更何况去编程呢!...所以为了让更多的人能够进行编程,使编程变得更加简单快速,前辈们绞尽脑汁,掉光了头发终于发明了高级语言,高级语言有如下优缺点: 优点(较于汇编语言):开发效率高 缺点(较于汇编语言):执行效率低(不直接和硬件交互...) 这样一般人也能够去进行编程了,但不同的武林高手发明的秘籍(高级语言)各有区别,可分为如下两大类: 编译型语言 解释性语言 编译型语言 大家都用过谷歌翻译,你把一段话粘贴到谷歌翻译上,他会给你一次性翻译成中文

7.9K20

编程语言分类

(4)按照程序在运行时能否改变结构,分为动态语言与静态语言。运行时可以改变结构的为动态语言,反之为静态语言。...改变结构指的是运行时代码可被动态改变,比如添加新的代码、更改对象定义(如为对象新增属性与方法); (5)按照变量是否需要指明类型,分为强类型语言与弱类型语言,需要则为强类型语言,不需要则为弱类型语言...这里根据TIOBE编程语言热度排行榜(截止至2018年6月)Top 10的编程语言,来做一个简单的介绍和分类。...Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。...JavaScript是一种支持面向对象动态弱类型解释型脚本语言,由Netscape公司于1995年发明创造。广泛用于Web前端页面,最早是在HTML网页上使用,用来给HTML网页增加动态功能。

10K2218

编程语言常识

Python第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。...而C程序是运行前直接编译成CPU能执行的机器码,所以非常快 任何一种编程语言都有自己的一套语法,编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行。...函数可以同时返回多个值,但其实就是一个tuple 1.静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。...例如Java是静态语言 2.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,所以Python是动态语言 3.变量在计算机内存中的表示:...现代操作系统和大多数编程语言都直接支持Unicode。 ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。

8.3K20

如何选择编程语言以及编程语言的分类

想了解编程语言我们先要知道什么叫做“编程”,编程的意思就是编写流程,那么只要能编写流程的语言都应该叫做编程语言。...据不完全统计,所有编程语言加起来超过600种,其中用的比较多的也就前20种语言,Python不仅是其中一种而且这两年已经稳居第一名的宝座了。...9.jpg 一、低级语言和高级语言 计算机编程语言能够实现人与机器之间的交流和沟通,而计算机编程语言主要包括汇编语言、机器语言以及高级语言,具体内容如下: 汇编语言语言主要是以缩写英文作为标符进行编写的...高级语言 所谓的高级语言,其实是由多种编程语言结合之后的总称,其可以对多条指令进行整合,将其变为单条指令完成输送,其在操作细节指令以及中间过程等方面都得到了适当的简化,所以,整个程序更为简便,具有较强的操作性...二、交互原理 编程语言承接的就是人与机器之间的交互中介,程序员通过编程语言编写一段执行命令的流程代码,这段代码在执行前会被编译成底层语言,比如python就会直接编译成C语言,C语言计算机也是看不懂的,

12.4K00

编程语言常识

看图区别编程语言 什么是强类型、弱类型语言?哪种更好? 强类型语言 强类型语言是一种强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就是该数据类型。...哪种类型语言更好取决于具体的应用和编程需求: 强类型语言通常更有助于代码的可维护性和稳定性,因为它们强制类型检查,减少了类型相关的错误。这在大型项目和团队协作中特别有用。...弱类型语言可能更适合快速原型开发和某些特定用途,因为它们提供了更大的灵活性。但要谨慎使用,以避免潜在的类型错误和不稳定性。 选择哪种类型系统通常取决于项目的需求、开发者的偏好以及编程语言的特性。...不同的语言类型系统适用于不同的情境,没有一种绝对更好的选择。 什么是动态类型、静态类型语言?哪种更好? 动态类型语言动态类型语言中,变量的数据类型在运行时确定,而不是在编译时。...参考文章 弱类型、强类型、动态类型、静态类型:https://www.jianshu.com/p/336f19772046 编译型语言、解释型语言、静态类型语言动态类型语言概念与区别:https://

11710

编程语言分类

编程语言的分类可以从三个角度出发: 角度一:编译型和解释型     编译型:即把源程序的每一条语句都编译成机器语言,并保存为二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,优点:执行速度很快...缺点:开发效率低,不能跨平台(例如C、C++等) 解释型:只在运行时才一条一条的解释成机器语言给计算机执行,优点:开发效率高,跨平台。...缺点:运行速度慢(例如“:python、php)  混合型:例如JAVA、C#(读作C Sharp,我以前以为读作c井,哈哈哈) 角度二:静态语言动态语言   动态语言:即数据类型是在运行期间检查的...(例如java、c\c++) 角度三:强类型语言和弱类型语言 强类型语言(类型安全):强制数据类型定义的语言,即一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。...弱类型语言: 一个变量可以赋不同数据类型的值。 所以这里得出结论:python是一门动态解释型的强类型定义语言,C语言是一门静态编译型的强类型定义语言,而Java是一门静态混合型的强类型定义语言

7.7K21
领券