gpt4 book ai didi

assembly - 什么是数据类型以及它是如何实现的?

转载 作者:行者123 更新时间:2023-12-02 19:44:31 24 4
gpt4 key购买 nike

我两年前开始编程,当我编程并保持沉默时,有一个问题一直困扰着我。

我了解微处理器架构和低级编程的基础知识,并且我了解不存在数据类型之类的东西。它只是限制数据处理方式和控制内存资源的抽象。

所以我知道这是一个深刻且有些不清楚的问题,但希望您能理解我所缺少的拼图部分,以便理解高级编程与硬件中实际情况之间的联系。

所以我的问题是:数据类型到底是什么以及它如何、在何处以及何时实现?

最佳答案

数据类型是语言语义的元素。它是关于语言中的变量可以表示什么类型的信息以及适用于这些类型的信息的转换的一组规则。

它是在语言的编译器或解释器中实现的。在编译语言中,它是在编译时实现的。在解释型语言中,它是在运行时实现的 - 一些规则在“初始解析过程”期间应用,一些规则在执行期间根据语言的语义操作数据本身时应用。

<小时/>

针对OP评论的详细说明:

发生的情况的一个具体示例可能是在 C 中处理此代码:


int i =“foo”;

C 编译器首先对其进行词法分析,并得出结论:它有一个关键字,后跟标识符,后跟运算符,后跟常量。从语法上看,它确定它是一个初始化语句。然后进行语义分析并确定要求将字符串常量分配给整型变量。此时,它得出的结论是,这在语义上是不允许的因为整数数据类型不允许有字符串值。 C 编译器为此发出错误语句,并且不生成输出代码、汇编代码、二进制文件

数据类型的效果是导致编译停止。

数据类型的实现在C编译器本身中——在编译器的代码/逻辑中。

您无法在程序本身的“汇编代码”中“看到”数据类型。它们存在于实现语言(编译器或解释器)的机制中,而不是在生成的程序中。

因此不存在“一段说明数据类型的汇编代码”这样的东西。

关于assembly - 什么是数据类型以及它是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21357014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com