gpt4 book ai didi

Prolog:编译或解释语言或两者兼而有之?

转载 作者:行者123 更新时间:2023-12-04 13:26:18 26 4
gpt4 key购买 nike

有 prolog 的编译器,但其他网站说该语言本身是一种解释型语言。我很困惑 prolog 是否真的是一种解释型语言。有人可以澄清一下语言到底是什么吗?编译语言还是解释语言?

最佳答案

为了回答这个问题,让我们确定一些定义。
编译语言是一种将源代码文件转换为一种形式(二进制、字节码等)以供独立执行或转换为与其他程序链接的库的语言。结构是固定的,不能修改。
解释型语言是一种将构造转换为可以在转换后执行的形式的语言。每个转换后的构造通常都被放入一个可以被后面的构造引用的存储中。
现在许多编程语言既可以编译也可以解释,没有规则说一种编程语言只能是一种或另一种。
在早期,大多数编程语言都是一种或另一种,例如C++ - 编译,BASIC - 解释。
现在回答你的问题:

Prolog: a compiled or interpreted language or both?


Prolog 语言可以编译和解释,所以答案是两者兼而有之。
您看到不同站点的不同答案的原因是您在询问语言,将 Prolog 语言视为一个抽象概念,但查看具体实现时,将站点视为指具体实现。因此,一些实体做一个或另一个,而一些实体则两者都做。
在过去的几年里,在我看来,人们的共识是,如果你有一个主要的编程语言,它必须有一个编译器来生成高效的代码和一个使用解释器快速开发构造的 REPL。
通常趋势是使用 REPL 开发和测试基本的编程结构,然后将它们移动到将被编译以构建库的源代码文件中。然后从 REPL 中引用这些库;冲洗并重复。
有趣的是,Prolog 是我使用的第一种同时具备这两种功能的语言,那是在 1980 年代。
如果您阅读 ISO/IEC 13211 Information technology -- Programming languages -- Prolog -- Part 1: General core 它指出:

The language originates from work in the early 1970s by Robert A.Kowalski while at Edinburgh University (and ever since at ImperialCollege, London) and Alain Colmerauer at the University ofAix-Marseilles in France. Their efforts led in 1972 to the use offormal logic as the basis for a programming language. Kowalski’sresearch provided the theoretical framework, while Colmerauer’s gaverise to the programming language Prolog. Colmerauer and his team thenbuilt the first interpreter, and David Warren at the AI Department,University of Edinburgh, produced the first compiler.

关于Prolog:编译或解释语言或两者兼而有之?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37427094/

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