低级语言和高级语言
一般而言,更接近硬件的语言被称为低级语言,反之,更远离硬件被称为高级语言。C语言既有低级语言的特点,又有高级语言的特点,又被称为系统语言。Java/Python一般被称为高级语言。
大小写敏感
DOS/Windows与众不同,默认不区分大小写,影响了批处理大小写行为。与Linux有别,大部分Unix like操作系统均是大小写敏感。macOS可以选择在制作分区时设定大小写敏感。
Windows
- DOS不区分大小写源于之前的系统也不区分,追溯到远古时期FORTRAN语言也不支持,为什么?因为打孔机位置有限,大写和小写意义一样,为何多增加小写?
- 注意,Windows文件系统是否支持大小写和Windows内核编程语言是否支持大小写无任何关系,文件系统驱动程序控制大小写支持与否,内核编程语言只控制内核代码编译,不控制执行。事实上,Windows内核代码会默认忽略大小写,例如对象访问附加属性OBJ_CASE_INSENSITIVE.
- 因引入WSL,Linux区分大小写。自 Windows 10 内部版本 17107 开始,支持按目录区分大小写,是利用文件系统的setCaseSensitiveInfo属性。使用方式很简单,详情:WSL区分大小写
- fsutil file setCaseSensitiveInfo <path> enable
- 可修改注册表设置大小写敏感。
- HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
静态语言和动态语言
静态动态语言和类型是极其容易被混淆的概念,实际上不同语言设计者和使用者对语言理解不同,"静态"和"动态"的概念有很大差异。如下将按照维基百科作为标准。
静态语言和动态语言
- 动态语言是指一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。静态语言,即不支持动态语言功能的语言。
- 动态语言
PHP、Python、Ruby、Shell、Batch、JavaScript
- 静态语言
C、ObjC、C++、Java
静态类型和动态类型
- 静态类型:如果一个编程语言的类型检查,发生在编译期,可在不测试运行时期表达式的等价性的情况下进行。例如:
C/ObjC/C++/Java/C#/Go/Swift/Rust/仓颉/Fortran/VB.NET
- 动态类型:如果一个编程语言类型检查发生在运行期,支持运行时期(动态)调度已标记的资料。
Python/JS/VB6
强类型和弱类型
- 强类型的基本定义即为,禁止错误类型的参数继续运算。Python是强类型语言。
- 弱类型意指一个语言可以隐式的转换类型(或直接转型), 例如VBScript、Shell.
链接
链接是编译的下半段,但一般都不特别指出链接,被编译代替。
链接的意义
公司举办一个足球比赛,不同球队分别负责搬水、搬球衣手套等设备,最终大家聚集在一起,才能把比赛打完。
- MSVC中cl.exe和link.exe为独立的两个程序。
若文章对您有帮助,欢迎关注。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。