草庐IT

ocaml-toplevel

全部标签

c++ - 我的编译器在 C/C++、OCaml 和 F# 之间犹豫不决

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。我想开始研究一个小编译器并构建它,我在几种不同的语言之间犹豫不决。我的要求很简单,我希望能够发出LLVM-IR代码,因为我有一个LLVM后端,我想重用以针对特定平台。所以现在我有以下选择:使用OCaml和LLVM绑定(bind)-高效,LLVM附带OCaml绑定(bind),但OCaml(IDE,支持)的编码体验并不是最好的。使用C/C++和LLVM绑

c++ - 我的编译器在 C/C++、OCaml 和 F# 之间犹豫不决

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。我想开始研究一个小编译器并构建它,我在几种不同的语言之间犹豫不决。我的要求很简单,我希望能够发出LLVM-IR代码,因为我有一个LLVM后端,我想重用以针对特定平台。所以现在我有以下选择:使用OCaml和LLVM绑定(bind)-高效,LLVM附带OCaml绑定(bind),但OCaml(IDE,支持)的编码体验并不是最好的。使用C/C++和LLVM绑

c++ - OCaml 有引用传递的能力吗?

在C++中,程序可以将引用而不是值传递给函数。voidincrementInt(int&x){++x;}OCaml是否提供相同的功能? 最佳答案 不,没有严格的等价物。有ref,就像指向新分配的内存的指针,还有记录、数组、对象和其他复合数据类型的值,它们是“通过对象引用”传递的,这再次意味着它们就像指向新分配内存的指针。但是,没有与指向变量或C++引用的指针等效的东西。 关于c++-OCaml有引用传递的能力吗?,我们在StackOverflow上找到一个类似的问题:

c++ - 从 Ruby 代码访问以 OCaml 和 C++ 编写的库

我正在编写一个Ruby程序,我想在其中使用以下库:LTL3toolsAT&TFSMlibraryLTL2BAlibraryLTL3工具是用OCaml编写的,AT&TFSM库是用C++编写的,LTL2BA库是用C++编写的。LTL3工具依赖于AT&TFSM库和LTL2BA库。我有所有这些库的可执行文件和源代码。如何从Ruby代码访问所有这些库?对不起,菜鸟问题,这是我在Ruby的第一周。顺便说一句,如果有帮助,我正在使用LinuxUbuntu。 最佳答案 与用不同语言编写的库进行交互的最简单方法是不是找到一个API桥使其作为程序的一部

c++ - 在 OCaml 中,抽象的代价有多大(即多态函数)

我仍处于学习OCaml的早期阶段,并且很想知道从OCaml中的通用代码中提取最大性能的最佳方法是什么。作为一个小实验,我编写了两个多态函数:一个用C++编写,另一个用OCaml编写,用于查找给定数组中的最大元素。我观察到的是,虽然在C++中您不会为这种抽象付出代价,但在OCaml中的代价是性能大幅下降一个度数。顺便说一句,我快速编造的C++解决方案比OCaml解决方案更通用,但我主要将其归咎于我对这门语言缺乏经验。我的问题如下:如何在OCaml中编写和使用多态函数而不付出我刚刚观察到的巨大性能损失?对于这个特定问题,我观察到的另一件事是我在OCaml中的功能解决方案比命令式解决方案慢,

windows - 具有 OpenGL 和 SDL 预编译 Windows 分发版的 Haskell 或 Ocaml

我想学习Ocaml或Haskell,我想通过编写一个简单的游戏来实现。显然,有一个小问题:没有人关心Windows,而我想在Windows上进行本地操作。Haskell有Cabal,它有SDL,但由于一个没有解决方法的小问题(传递给gcc的参数顺序),它没有构建。Ocaml甚至没有,它都在源包中,无论是GLCaml还是OcamlSDL或其他什么。有没有什么地方可以让我在Windows上获得适用于Haskell或Ocaml的有效SDL,而无需与十几个版本的编译器作斗争? 最佳答案 Haskell平台附带了对OpenGL的绑定(bind

windows - 如何在 Windows 上使用 OCam 安装 OCaml?

如何在Windows上安装OCaml和OPam? 最佳答案 我已经能够使用Opam包管理器在Windows10中设置OCaml4.03.0,方法是遵循本网站的教程:http://fdopen.github.io/opam-repository-mingw/.以下是我执行的详细步骤:安装OCaml、Opam和Cygwin:从此链接下载安装包:http://fdopen.github.io/opam-repository-mingw/installation/.有32位和64位版本,但我建议安装OCaml64位。运行图形化安装文件时,会

mysql - OCaml 的数据库绑定(bind)?

我试图找到一个库来从OCaml程序访问数据库。尝试后ocaml-sqlite,我不满意,因为它有点慢。看过一个MySQL模块,不过好像没人维护 最佳答案 你检查过CamlHump了吗??它具有大量数据库绑定(bind)的链接。我可以推荐的良好、成熟的绑定(bind)是RichardJones的PG'OCaml和MarkusMottl的postgresql-ocaml。它们都针对Postgresql(考虑到您喜欢Ocaml,这可能是更好的选择)。 关于mysql-OCaml的数据库绑定(b

networking - OCaml 适合写网络服务器吗?

我想知道OCaml在处理多线程环境中基于TCP的典型客户端/服务器交互时,在性能和易于实现方面是否表现良好。我的意思是一些非常典型的东西,比如每个客户端都有一个线程来接收数据,对游戏状态进行操作更改并将其发送回客户端。这是因为我需要为游戏编写一个服务器,我总是用C来做这些事情,但自从我知道OCaml以来,我很想知道它是否可以,或者我会发现自己试图解决一个典型的问题用一种不太适合的语言来解决问题。 最佳答案 性能:可能不会。OCaml的线程不提供并行执行,它们只是构建程序的一种方式。OCaml运行时本身不是线程安全的,因此唯一可能与单

python - OCaml 与 Python 之间的通信

我想知道将数据从OCaml发送到Python并将响应从Python返回到OCaml的最佳方式。我能想到的一种天真的方法如下。1)在OCaml中,将数据写入文件系统上的文件(input.txt)。2)在OCaml中,运行python,打开input.txt,读取数据,将执行结果写入output.txt3)在OCaml中,打开output.txt并读取结果还有其他简单的方法可以完成此类任务吗?提前致谢。 最佳答案 这是一个关于如何在两个用不同语言编写的程序之间进行对话的一般性问题。实际上,这个问题应该进一步分割为两个独立的子问题:使用什