低级语言和高级语言、大小写敏感、静态语言和动态语言、链接

低级语言和高级语言

一般而言,更接近硬件的语言被称为低级语言,反之,更远离硬件被称为高级语言。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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值