当前位置: 首页 > 编程笔记 >

您在OCaml中的第一个程序

上官羽
2023-03-14
本文向大家介绍您在OCaml中的第一个程序,包括了您在OCaml中的第一个程序的使用技巧和注意事项,需要的朋友参考一下

示例

现在,您可以在喜欢的操作系统上使用OCaml发行版,我们可以在OCaml中创建您的第一个程序:Hello World!

我们有不同的方法来启动OCaml程序。

REPL(Toplevel)

您可以与顶层交互地执行代码。使用OCaml toplevel,您可以将UNIX外壳程序编写和执行OCaml代码。之后,顶层将立即检查您的代码类型。因此,您可以快速轻松地测试代码的某些部分,而无需编译和执行。

您可以使用命令启动顶层ocaml。然后,您可以编写一个OCaml句子,;;该句子将立即被评估。顶级紧随其后显示表达式的类型和值:

# "世界您好!";;
- : string = "世界您好!"

也可以在文件上启动顶层。您可以看到有关此内容的说明。

为了方便您在顶层输入,可以使用ledit或的工具,该工具rlwrap提供了一些功能(例如输入历史记录):

 $ ledit ocaml

 $ rlwrap ocaml

我们有两种不同的编译器,一种编译为字节码,另一种编译为本机代码。第一个与Java虚拟机的字节码相同。因此,字节码效率较低,但可移植性更高。

我们有一些OCaml编译器使用的扩展文件:

延期 定义
.ml 源代码(如.cC语言)
.mli 接口(如.hC语言)
.cmo 源代码通过编译ocamlc的字节码
.cmi 接口代码由 ocamlc
.cmx 和 .o 由ocamlopt本机代码编译的源代码
.cma 字节码中的库(部分存储桶*.cmo)
.cmxa 和 .a 本机代码库
.cmxs 本机代码库(动态加载)

字节码编译器ocamlc。

您有不同的常用选项:

  • -c:编译没有链接过程的源文件(生成可执行文件)。因此,该命令将ocaml -c foo.ml生成一个.cmo文件。与不需要编译头文件的C不同,在OCaml中必须编译.mli文件:ocaml -c foo.mli。

您需要先编译接口。之后,当您编译源文件时,OCaml会尝试检查实现是否与接口匹配。

该.mli文件不是必需的。如果编译的.ml文件中没有.mli文件,OCaml将.cmi自动生成一个文件。

    list-paddingleft-2">
  • -o:将某些.cmo文件编译为可执行文件。例如:。这些文件需要按照与第一个文件没有依赖性的依赖性进行排列。ocamlc -o programfoo.cmobar.cmo

  • -I:表示编译器可以在其中找到编译所需文件的其他目录(例如接口或源代码)。它与-IC编译器中的相同。

我们还有许多其他选择。您可以参阅手册以获取更多信息。

因此,您可以编写hello.mlnow,然后编译该文件ocamlc -o hello hello.ml以生成字节码程序:

let () = print_endline "你好,世界!"

该let () = ...是你的程序的第一个条目(如mainC语言)。之后,我们将函数print_endline(由标准库提供)与参数"你好,世界!"一起Hello Worlds使用,以在标准输出中以换行符进行打印。

编译后,您将拥有该.cmo文件以及.cmi该编译器和您的程序自动生成的文件hello。您可以打开程序,在该文件的顶部,您可以看到:

#!/usr/local/bin/ocamlrun

这意味着您的程序需要该ocamlrun程序(由发行版提供)来执行字节码(例如JVM)。

编译为本机代码

我们还有另一个生成本机代码的编译器。编译器为:ocamlopt。但是,生成的可执行文件无法在大多数其他体系结构上运行。

ocamlopt使用与相同的选项,ocamlc因此您可以执行ocamlopt -o hello hello.ml。之后,您可以看到.cmx和.o文件。

最后,从您的字节码/本机代码程序,您可以执行:

$ ./hello
你好,世界!
$

           

 类似资料:
  • 目标 使用 Eclipse Package Explorer 创建包和声明类 向类添加变量和方法 了解 Logger 类如何帮助您关注应用程序的行为 使用 Eclipse 代码生成器 创建一个 JUnit 测试案例并在 Eclipse 内运行它 您的 Person 类 第 1 步:创建一个包 不使用默认包(几乎始终是一种不好的做法),而专门为您编写的代码创建一个包。单击 File > New >

  • 本节介绍如何开发一个简单的“Hello World!”Web应用程序,该应用程序突出了Spring Boot的一些主要功能。 我们使用Maven来构建这个项目,因为大多数IDE都支持它。 注:spring.io网站包含许多使用Spring Boot的“入门”指南。 如果您需要解决特定问题,请先检查一下。 您可以通过转到start.spring.io并从依赖关系搜索器中选择“Web”启动器来快捷执行

  • 本站为对 OCaml 感兴趣者提供一套实用而详尽的教程。OCaml是一种快速、简洁、而强大的应用程序开发语言,我想大家也许已经知道这一点了,而且已经安装了 OCaml。

  • 现在我们将从整体上观察一些OCaml程序。我将传授以下内容:局部和全局定义,何时使用;;而何时用;,模块,嵌套函数,以及引用。为此我们会见到很多现在还不理解意义的目前还未接触过的OCaml概念。不用担心这些细节,只要专注于程序的整体形状以及我指出的那些特性。 局部"变量"(实际是局部表达式) 我们来看C中的average函数并且加一个局部变量。 double average (double a,

  • 本文向大家介绍Django 创建您的第一个模型,包括了Django 创建您的第一个模型的使用技巧和注意事项,需要的朋友参考一下 示例 通常在models.py应用程序子目录下的文件中定义模型。在Model类的django.db.models模块是一个很好的起点类来扩展你的模型。例如: 模型中的每个属性代表数据库中的一列。 title 是最大长度为100个字符的文本 author是ForeignKe

  • 这篇文档将带你快速创建一个 MIP 页面。 1. 创建 HTML 文件 首先创建一个标准的 HTML 文件,注意: 在 <html> 标签中增加 mip 属性标识。 编码为 utf-8 。 添加 meta-viewport,用于移动端展现。 <!DOCTYPE html> <html mip> <head> <meta charset="UTF-8"> <meta name="