Programming languages 区分大小写是否与强类型语言(或松散类型语言)有关?
(我承认这可能是一个n00b问题——我对CS理论知之甚少,主要是一种实践/爱好。) 我在谷歌上搜索强类型语言的官方定义,我发现的一个顶级链接来自,这表明区分大小写是语言是否松散/强类型的一部分 我一直认为,对于强类型语言和弱类型语言之间的区别,最简单的答案是前者需要显式的类型声明,而后者更开放,甚至是“动态的”Programming languages 区分大小写是否与强类型语言(或松散类型语言)有关?,programming-languages,theory,case-sensitive,strong-typing,Programming Languages,Theory,Case Sensitive,Strong Typing,(我承认这可能是一个n00b问题——我对CS理论知之甚少,主要是一种实践/爱好。) 我在谷歌上搜索强类型语言的官方定义,我发现的一个顶级链接来自,这表明区分大小写是语言是否松散/强类型的一部分 我一直认为,对于强类型语言和弱类型语言之间的区别,最简单的答案是前者需要显式的类型声明,而后者更开放,甚至是“动态的” 到目前为止,我发现的两个S/O线程(和)似乎(或多或少)表明了这一点,但它们没有提到任何关于区分大小写的内容。区分大小写与强/弱之间是否存在任何关系 理论上,区分大小写与类型严格性完全无
到目前为止,我发现的两个S/O线程(和)似乎(或多或少)表明了这一点,但它们没有提到任何关于区分大小写的内容。区分大小写与强/弱之间是否存在任何关系 理论上,区分大小写与类型严格性完全无关。区分大小写是关于标识符
foo
、foo
和foo
是否引用相同的变量、函数或您拥有的内容。类型严格性是关于变量是有类型还是只有值有类型,在类型之间转换有多容易,等等
实际上,区分大小写和类型严格性之间可能存在关联,但我现在想不出足够多的不区分大小写的语言来进行评估。我的印象是,当今大多数常用的语言都是区分大小写的——可能是因为C是区分大小写的,而且非常有影响力,可能是因为在使用了几十年的FORTRAN、COBOL和BASIC之后,这是迫使人们停止使用所有CAP编程的唯一方法。不,它们没有联系。强类型语言强制您指定变量可能包含的数据类型,例如实数、整数、文本字符串或某些程序员定义的对象。除非变量是隐式可转换的,否则它们不会意外地将另一种类型的数据赋给该变量:例如,通常可以将整数赋给实数(即
double x=3.14;x=3;
可以,但int x=3;x=3.14;
可能不会,这取决于langauge的类型有多强)。弱类型语言只存储它们被要求存储的内容,而不进行这些健全性检查。在C++之类的强类型语言中,您仍然可以创建可以存储任何特定类型集合的数据的类型(例如C++的代码> Boo::变体< /C>),但有时它们在您能做多少和使用起来多么方便方面有点局限。
区分大小写是指在某些情况下,同一字母的大小写版本被认为是等效的。。。通常在字符串比较或正则表达式匹配中。现代计算机语言忽略变量名(标识符)中字母的大小写是不寻常的,但并非闻所未闻。有几点澄清:
“foo”
和“bar”
相乘,在perl中会得到0
,而在ruby、python、java、haskell、ml和许多其他语言中会导致类型错误。因此,这些语言比perl更具有强类型
强类型有时也用作静态类型的同义词更重要的是,有许多静态和强类型语言(如Haskell、ML)不需要类型注释,而是使用类型推断算法来推断类型。如果存在相关性,则不完美。例如,Pascal比C强类型(隐式转换更少,没有非类型指针),但它不区分大小写,而C区分大小写。你的来源是一个糟糕的笑话,很像:Q。你知道为什么一些计算机科学家在键入程序时对键使劲敲吗?他们更喜欢强类型语言!哇,这是一个7年前的老问题,当时我还是一个php/javascript的人