对高级编程语言的基本理解

电脑杂谈  发布时间:2020-04-22 15:16:48  来源:网络整理

我们通常使用的高级编程语言的程序代码实际上是一个文本文件,每种编程语言的文本文件都有自己的扩展名. 例如,Java程序源代码文件的扩展名是. Java,JavaScript程序源代码文件的扩展名为. JS公司

文件扩展名是什么?文件用于存储数据,存储在计算机中时必须对数据进行编码. 然后我们可以把文件的扩展理解为一个“协议”. 如果一个文件使用某个扩展名,就相当于该文件遵循某个协议,并且它可以被支持该数据协议的应用程序读取、解析和处理. 当然,不支持此协议的应用程序也可以打开此文件,但结果往往是混乱的

但程序源代码不同. 高级编程语言的源代码本质上仍然是一个纯文本文件. 我们可以用任何编辑器打开并查看它,使用特定的扩展实际上告诉这个高级编程语言的编译器,这个文件中的文本遵循相应编程语言的语法和规范,所以我们可以由编译器编译

高级编程语言的源代码文件本质上是纯文本文件,而纯文本文件实际上是人类的一个大字符串,而高级编程语言的编译器在编译源代码时实际上是在处理一个大字符串,这将基于特定的规则(主要取决于在编程语言中定义的关键字)源代码的文本被映射成一个抽象的语法树(这里我不介绍,关键是我对编译原理的相关知识没有太多的接触). 无论如何高级程序设计语言有哪些,在一次操作之后,代码可以运行(认真的)

从人类信息文明的发展来看,从文本产生之初到现在,人类信息的记录和传输方式是使用“字符串”,而计算机程序的操作是处理数据. 我们需要把数据传给代码,然后从代码中接收处理过的数据;而数据的来源是人类,所以我们可以更准确地确定,计算机程序的最终来源是人类提供的字符串

甚至Java中date这样的对象的最终数据源也是一个表示数字的字符串(时间戳)

高级编程语言的**源代码本身就是一个字符串,如何将数据转换成字符串呢?这取决于高级编程语言提供的文本机制. **在高级编程语言中,我们可以通过使用分隔符、特殊格式、关键字和其他方式提供文本机制

在编程语言中,文字通常分为三类:

标识符可以由字母、数字、下划线和$组成,其中数字不能以$开头. 标识符不能是Java关键字,保留字标识符不能包含空格标识符只能包含美元符号($),并且不能包含Java编译器自动生成的用于区分的代码中特别使用的其他特殊符号,如@,ා(@,ා)

以上是从疯狂Java讲义p48中提取的Java标识符的命名规则. 实际上,编程语言中标识符的命名规则大多是相似的. 现在让我们讨论一下为什么标识符可以包含数字,但不能以数字开头

正如在literal的介绍中所提到的,数字literal不需要分隔符,也就是说,当编译器编译代码时,如果遇到纯数字字符串,它将认为它是一个数字. 注意,数字文本没有分隔符,也就是说,数字文本直接嵌入到代码中,编译器对数字文本的识别只是“这是一个表示数字的字符串”. 如果没有命名没有数字的标识符的规则,那么在a=1+B这样的代码中,1是标识符还是文字数字?同时,即使标识符不能是纯字符串高级程序设计语言有哪些,也不可行. 对于Java,123l是一个数字文本值. 如果解除了无法启动的数量限制,则会大大增加标识符解析的成本和难度. 对于高级编程语言来说,标识符解析是一个非常频繁的操作,而标识符不能以数字开头这一限制不会对我们的编程产生任何影响,因此最好的解决方案是标识符名称不能以数字开头

我忍不住提到了Java中in t和long的字面意思. Java中的整数文本支持四个基:

结果发现,不,所有的基都以数字开头,也就是说,在Java中,只要“identifier”Java以数字开头,没有分隔符,就被认为是数字文字

数据类型、运算符和变量可以说是每一种高级编程语言最基本的组成部分,而我们日常编码的很大一部分就是处理这三个组成部分. 通过这三个基本组件,高级编程语言使我们能够以一种相对接近自然语言的方式编写程序代码,例如a=B+C,我们相信每个开发人员无论使用哪种高级编程语言,这种表达式都是非常常见的,这也使得高级编程的语义语言更清晰,代码更容易编写

但是当我们使用高级编程语言提供的数据类型、运算符和变量时,高级编程语言会问我们做了什么

据我所知,数据类型、运算符和变量实际上是由高级编程语言为我们封装的一系列内存操作. 例如,在一个32位的计算机系统中,如果直接使用汇编,我们需要自己寻址内存,将数据加载到寄存器中,然后使用相应的汇编指令让CPU加载我们用高级编程语言发送,这一系列操作是由一个简单的表达式a=B+C完成的,其中a、B、C是变量(当然,文字值也可以存在于表达式中),帮助我们完成寻址操作. 同时,变量的数据类型指定操作的内存大小和内存中数据的解决方案. 运算符指定对这些数据的操作

为了总结上述理解,在高级编程语言中:

这样,开发者就摆脱了底层硬件的束缚,让我们更加关注程序的逻辑

当然,很多编程语言都运行在某个平台上(主机环境可以是操作系统或其他应用程序,比如浏览器中运行的JavaScript;管理系统中运行的SQL;JVM中运行的Java,操作系统中运行的JVM等等),而高级程序设计语言的发展依赖于编译技术和其他低级技术的发展,这里不会过多地介绍这些技术

以上的理解是个人的经验和理解. 如果你有不同意见,请留言讨论


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-184896-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...