首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规范语言vs编程语言

规范语言vs编程语言
EN

Stack Overflow用户
提问于 2019-08-14 23:58:06
回答 2查看 383关注 0票数 1

这是一个基本的问题。Coq有一种Gallina形式的规范语言。据我所知,Coq本身是用OCaml编写的。

我的问题是,Gallina什么时候开始发挥作用?它是用来做什么的,为什么?我想我误解了规范语言和编程语言的使用。

EN

回答 2

Stack Overflow用户

发布于 2019-08-15 02:36:35

Gallina既是Coq的“编程语言”,也是“规范语言”。

在某些校对助手中,用来构建程序的语言与用来构建规范的语言是分开的,而用来构建校样的语言甚至可以是第三种语言!在Coq中,您可以使用Gallina完成所有这三个任务,因为它使用了一个支持所有这些任务的统一框架。

现在,Coq系统(类型检查器、编译器、IDE等)是使用OCaml作为构建语言和工具的编程语言构建的。但就像其他编程语言一样,语言和工具是如何在语言中实现的几乎不应该在语言中可见:它是自托管的、使用C、汇编还是其他什么,在某种程度上都是实现细节。

OCaml确实出现在Coq的一些高级用法中(如果您想编写插件),但在大多数情况下,您可以将其视为运行校对助手的“程序集”。

票数 7
EN

Stack Overflow用户

发布于 2019-08-15 00:27:42

对于普通用户来说,Coq是用OCaml编写的,这一事实是不可见的。Gallina是Coq的语法。(它并不是所有的语法,还有像策略语言之类的东西。)如果您使用Coq编写程序,则可以使用Gallina语法编写它。当然,Coq并没有将证明和程序的概念分开(这就是Curry-Howard同构的全部要点,证明和程序是一回事)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57498223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档