注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

随机过程

http://superware.blog.163.com

 
 
 

日志

 
 

Dynamical Type and Static Type Language  

2015-07-13 08:44:50|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1 Semantics

Scheme is a statically scoped programming language. Each use of a variable is associated with a lexically apparent binding of that variable.

Scheme has latent as opposed to manifest types. Types are associated with values, also call objects, rather than with variables. Some authors refer to languages with latent types as weakly typed or dynamically typed languages. Other languages with latent types are APL, Snobol, and other dialects of Lisp. Languages with manifest types, sometimes referred to as strongly typed or statically typed language, include Algol 60, Pascal, and C.


Scheme 是 latent types 语言,并且这种 latent types 有反明显类型的倾向。Latent types 的特点是:类型与变量(或对象)的值相关联,而不是与变量相关联。有的作者倾向于将 latent types 语言理解为弱类型或 dynamically typed 的语言。其他 latent types 语言还有:APL,Snobol,以及其他 Lisp 方言。Manifest types 语言,有时也称作 strongly typed 或 statically typed 语言包括 Algol 60、 Pascal 和  C.


A new concept of variables. In Lisp, all variables are effectively pointers. Values are that have types, not variables, and assigning or binding variables means copying pointers, not what they point to.

在 Lisp 中,一个关于变量的新概念是有效指针,有效指针指的是:类型信息含在变量的值中,而不是变量中;将变量的值赋给变量的操作是将指针拷贝给变量,而不是把这个指针变量指向的值赋给变量。

动态类型语言:弱类型
变量的类型与数据内存分配相关联,先分配内存,再在分配的内存中标示内存存储的数据的类型,然后将该块内存的地址赋值给变量。

静态类型语言:强类型,
变量的类型与变量相关联,先定义变量并分配内存,并同时将变量的类型绑定到变量上,再根据变量的类型分配变量的值所占据的内存空间。

所以动态类型与静态类型的区别可以归纳为:


1、从逻辑上说:类型究竟是绑定在变量上还是绑定在变量的值上。
2、从实现上说:定义变量的时候是先分配变量值的内存还是先分配变量内存。
  评论这张
 
阅读(59)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017