族谱网 头条 人物百科

类型安全

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:262
转发:0
评论:0
定义RobinMilner对于类型安全所喊出的口号:这一口号的涵义,取决于语言形式化语义的类别。在指称语义学里,类型安全意谓者一个表达式的值具有良好类型τ,则表达式是一个属于τ的集合的真正的成员。1994年,AndrewWright和MatthiasFelleisen以操作语义学定义的公式描述:何谓现今的标准定义,以及对于类型安全的检验技术。根据上述方法,类型安全是以编程语言语义中的两个性质所决定的:这些性质不是无中生有的,而是和编程语言所描述出来的语义相连系,而且各式各样的语言存在着可以此基准来充实的广大的空间。因为“类型良好”程序的概念已是静态语义学的一部分,而“卡住”(或者“搞错”)则是动态语义学方面的属性。语言的类型安全性学术研究用途的玩具语言,常会提出类型安全方面的需求。另一方面,许多语言以人工方式所产生的类型安全,证实经常需要上千次的检查。不过,某些语言,如标准ML,其严格定义...

定义

Robin Milner 对于类型安全所喊出的口号:

这一口号的涵义,取决于语言形式化语义的类别。在指称语义学里,类型安全意谓者一个表达式的值具有良好类型τ,则表达式是一个属于τ的集合的真正的成员。

1994年,Andrew Wright 和 Matthias Felleisen 以操作语义学定义的公式描述:何谓现今的标准定义,以及对于类型安全的检验技术。根据上述方法,类型安全是以编程语言语义中的两个性质所决定的:

这些性质不是无中生有的,而是和编程语言所描述出来的语义相连系,而且各式各样的语言存在着可以此基准来充实的广大的空间。因为“类型良好”程序的概念已是静态语义学的一部分,而“卡住”(或者“搞错”)则是动态语义学方面的属性。

语言的类型安全性

学术研究用途的玩具语言,常会提出类型安全方面的需求。另一方面,许多语言以人工方式所产生的类型安全,证实经常需要上千次的检查。不过,某些语言,如标准ML,其严格定义了语义,且Java也已提供类型安全。其它语言如Haskell也被认为是类型安全。暂且不理会语言定义的性质,在运行时期发生的某些错误,应归于实现时的缺陷,或是用了其它语言撰写的程序库;这种错误可能使给定的实现,在某些情况下的类型不再安全。

类型安全语言的存储器管理

要实现完善的类型安全语言,它至少需要垃圾回收或增加存储器配置和解配置的限制(本节主要针对前者)。更明确地说,不允许悬置指针横跨不同结构类型的存在。这有一技术上的原因:假定类型语言(如Pascal要求分配的存储器必须显式释放)。如果存在一个仍旧指向之前的存储器地址的悬置指针,新的数据结构可能会分配到同一空间。例如,如果初始化一个指向整数区域数据结构的指针,但新对象的指针区域却分配在整数的地方,然后指针区域可借由改变整数区域的值简单改变成任可东西(经由间接引用悬置指针)。因为当指针改变时,尚未指定将会发生什么,所以这个语言就不是类型安全的。大部分类型安全的语言满足使用垃圾回收实现存储器的管理。

在允许指针算术的语言中,实现垃圾回收器是最好的,所以在类型不安全的语言或类型安全可能失效的语言中,如此实现回收器的程序库是最好的。C 和 C++ 经常使用。

类型安全与强类型

在各种强类型的定义中,其往往成为类型安全的同义词;然而,类型安全与动态类型并不互相排斥。也可将动态类型视为非常宽松的静态类型语言,而且所有语法正确的程序皆具备良好类型;只要它的动态语义学能够保证绝不会有程序“搞错”,它就可以满足上述定义,且可称为类型安全。

参阅

数据类型

类型理论


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 安全
限制在一些保证或保险中,安全性可以限定一个物品或组织的机能品质,而且此机能是无害的。其目的是确保物品或组织只会进行原本定义要做的机能。在一些情形下,安全是一个相对性的概念。有时消除所有风险是不可能的,或者因为其困难度及其成本而不可行。这种情形下,安全是指人员或物品的风险及损害很低,在可接受范围内,而且是可以管理的。安全的种类有些产品符合对应安全标准,这些产品是安全的,但也有些产品只是让人感觉它是安全的,如何区分这二类产品就很重要了。为了区分不同的安全种类,公路安全社群使用以下的这些名词:校园安全规范安全规范安全(Normativesafety)是指设计或产品符合适用的标准及保护措施。实质安全实质安全(Substantive)是指一产品在安全议题上的历史是良好的,但本身不一定有符合相关的标准。感知安全感知安全(Perceivedsafety)是指客户认知的安全程度。例如红绿灯一般在感知上认为...
· 安全别针
起源安全别针的起源可追溯至公元前14世纪的麦锡尼文化(麦锡尼第三时代晚期)。那时被称为“Fibulae”(众数,单数为fibula),其用法和今日的安全别针相同且外观也相似。但之后安全别针就失传了。一直到1849年时,近代的安全别针才由美国发明家瓦特·杭特(WalterHunt)重新再发明,当时它的专利权售价是四百美金。组成它由坚硬折弯的金属或塑胶制成,它被称为安全是因为针的外部被包覆起来。它常被用来连结两件没有钮扣或拉链的布料。安全别针利用它细针的部分穿过物品后将它们串连在一起。它通常相当耐用且便宜。安全别针的文化根据1970年代英国狄克·布立奇(DickHebdige)的记述,当时的朋克族常利用安全别针来制造他们服饰上的新造型。参见胸针回形针
· 能源安全
参看粮食安全可再生能源
· 公共安全
参考文献^中国公共安全科技问题分析与发展战略规划研究.中国工程科学.2007年4月,9(4):35–40.
· 信息安全
名词区分信安概念信息安全这一术语,与计算机安全和信息保障(informationassurance)等术语经常被不正确地互相替换使用。这些领域经常相互关联,并且拥有一些共同的目标:保护信息的机密性、完整性、可用性;然而,它们之间仍然有一些微妙的区别。区别主要存在于达到这些目标所使用的方法及策略,以及所关心的领域。信息安全主要涉及数据的机密性、完整性、可用性,而不管数据的存在形式是电子的、印刷的还是其它的形式。计算机安全可以指:关注计算机系统的可用性及正确的操作,而并不关心计算机内存储或产生的信息。为保障信息安全,要求有信息源认证、访问控制,不能有非法软件驻留,不能有未授权的操作等行为。历史自从人类有了书写文字之后,国家首脑和军队指挥官就已经明白,使用一些技巧来保证通信的机密以及获知其是否被篡改是非常有必要的。凯撒被认为在公元前50年发明了凯撒密码,它被用来防止秘密的消息落入错误的人手中时被...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信