目次

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2008-08-27 (水) 16:46:49

Part I Objective Caml へようこそ

  • Chapter 1 The core language
    • 1.1 Basics
    • 1.2 Data types
    • 1.3 Functions as values
    • 1.4 Records and variants
    • 1.5 Imperative features
    • 1.6 Exceptions
    • 1.7 Symbolic processing of expressions
    • 1.8 Pretty-printing and parsing
    • 1.9 Standalone Caml programs
  • Chapter 2 The module system
    • 2.1 Structures
    • 2.2 Signatures
    • 2.3 Functors
    • 2.4 Functors and type abstraction
    • 2.5 Modules and separate compilation
  • Chapter 3 Objects in Caml
    • 3.1 Classes and objects
    • 3.2 Immediate objects
    • 3.3 Reference to self
    • 3.4 Initializers
    • 3.5 Virtual methods
    • 3.6 Private methods
    • 3.7 Class interfaces
    • 3.8 Inheritance
    • 3.9 Multiple inheritance
    • 3.10 Parameterized classes
    • 3.11 Polymorphic methods
    • 3.12 Using coercions
    • 3.13 Functional objects
    • 3.14 Cloning objects
    • 3.15 Recursive classes
    • 3.16 Binary methods
    • 3.17 Friends
  • Chapter 4 Labels and variants
    • 4.1 Labels
      • 4.1.1 Optional arguments
      • 4.1.2 Labels and type inference
      • 4.1.3 Suggestions for labeling
    • 4.2 Polymorphic variants
      • 4.2.1 Weaknesses of polymorphic variants
  • Chapter 5 Advanced examples with classes and modules
    • 5.1 Extended example: bank accounts
    • 5.2 Simple modules as classes
      • 5.2.1 Strings
      • 5.2.2 Hashtbl
      • 5.2.3 Sets
    • 5.3 The subject/observer pattern

Part II プログラミング言語 Objective Caml

  • Chapter 6 The Objective Caml language
    • 6.1 Lexical conventions
    • 6.2 Values
      • 6.2.1 Base values
      • 6.2.2 Tuples
      • 6.2.3 Records
      • 6.2.4 Arrays
      • 6.2.5 Variant values
      • 6.2.6 Polymorphic variants
      • 6.2.7 Functions
      • 6.2.8 Objects
    • 6.3 Names
    • 6.4 Type expressions
    • 6.5 Constants
    • 6.6 Patterns
    • 6.7 Expressions
      • 6.7.1 Basic expressions
      • 6.7.2 Control structures
      • 6.7.3 Operations on data structures
      • 6.7.4 Operators
      • 6.7.5 Objects
    • 6.8 Type and exception definitions
      • 6.8.1 Type definitions
      • 6.8.2 Exception definitions
    • 6.9 Classes
      • 6.9.1 Class types
      • 6.9.2 Class expressions
      • 6.9.3 Class definitions
      • 6.9.4 Class specification
      • 6.9.5 Class type definitions
    • 6.10 Module types (module specifications)
      • 6.10.1 Simple module types
      • 6.10.2 Signatures
      • 6.10.3 Functor types
      • 6.10.4 The with operator
    • 6.11 Module expressions (module implementations)
      • 6.11.1 Simple module expressions
      • 6.11.2 Structures
      • 6.11.3 Functors
    • 6.12 Compilation units
  • Chapter 7 Language extensions
    • 7.1 Integer literals for types int32, int64 and nativeint
    • 7.2 Streams and stream parsers
    • 7.3 Recursive definitions of values
    • 7.4 Range patterns
    • 7.5 Assertion checking
    • 7.6 Lazy evaluation
    • 7.7 Local modules
    • 7.8 Private types
    • 7.9 Recursive modules
    • 7.10 Private row types

Part III Objective Caml のツール

  • Chapter 8 Batch compilation (ocamlc)
    • 8.1 Overview of the compiler
    • 8.2 Options
    • 8.3 Modules and the file system
    • 8.4 Common errors
  • Chapter 9 The toplevel system (ocaml)
    • 9.1 Options
    • 9.2 Toplevel directives
    • 9.3 The toplevel and the module system
    • 9.4 Common errors
    • 9.5 Building custom toplevel systems: ocamlmktop
    • 9.6 Options
  • Chapter 10 The runtime system (ocamlrun)
    • 10.1 Overview
    • 10.2 Options
    • 10.3 Dynamic loading of shared libraries
    • 10.4 Common errors
  • Chapter 11 Native-code compilation (ocamlopt)
    • 11.1 Overview of the compiler
    • 11.2 Options
    • 11.3 Common errors
    • 11.4 Running executables produced by ocamlopt
    • 11.5 Compatibility with the bytecode compiler
  • Chapter 12 Lexer and parser generators (ocamllex, ocamlyacc)
    • 12.1 Overview of ocamllex
      • 12.1.1 Options
    • 12.2 Syntax of lexer definitions
      • 12.2.1 Header and trailer
      • 12.2.2 Naming regular expressions
      • 12.2.3 Entry points
      • 12.2.4 Regular expressions
      • 12.2.5 Actions
      • 12.2.6 Variables in regular expressions
      • 12.2.7 Reserved identifiers
    • 12.3 Overview of ocamlyacc
    • 12.4 Syntax of grammar definitions
      • 12.4.1 Header and trailer
      • 12.4.2 Declarations
      • 12.4.3 Rules
      • 12.4.4 Error handling
    • 12.5 Options
    • 12.6 A complete example
    • 12.7 Common errors
  • Chapter 13 Dependency generator (ocamldep)
    • 13.1 Options
    • 13.2 A typical Makefile
  • Chapter 14 The browser/editor (ocamlbrowser)
    • 14.1 Invocation
    • 14.2 Viewer
    • 14.3 Module browsing
    • 14.4 File editor
    • 14.5 Shell
  • Chapter 15 The documentation generator (ocamldoc)
    • 15.1 Usage
      • 15.1.1 Invocation
      • 15.1.2 Merging of module information
      • 15.1.3 Coding rules
    • 15.2 Syntax of documentation comments
      • 15.2.1 Placement of documentation comments
      • 15.2.2 The Stop special comment
      • 15.2.3 Syntax of documentation comments
      • 15.2.4 Text formatting
      • 15.2.5 Documentation tags (@-tags)
    • 15.3 Custom generators
      • 15.3.1 The generator class
      • 15.3.2 Handling custom tags
    • 15.4 Adding command line options
      • 15.4.1 Compilation and usage
  • Chapter 16 The debugger (ocamldebug)
    • 16.1 Compiling for debugging
    • 16.2 Invocation
      • 16.2.1 Starting the debugger
      • 16.2.2 Exiting the debugger
    • 16.3 Commands
      • 16.3.1 Getting help
      • 16.3.2 Accessing the debugger state
    • 16.4 Executing a program
      • 16.4.1 Events
      • 16.4.2 Starting the debugged program
      • 16.4.3 Running the program
      • 16.4.4 Time travel
      • 16.4.5 Killing the program
    • 16.5 Breakpoints
    • 16.6 The call stack
    • 16.7 Examining variable values
    • 16.8 Controlling the debugger
      • 16.8.1 Setting the program name and arguments
      • 16.8.2 How programs are loaded
      • 16.8.3 Search path for files
      • 16.8.4 Working directory
      • 16.8.5 Turning reverse execution on and off
      • 16.8.6 Communication between the debugger and the program
      • 16.8.7 Fine-tuning the debugger
      • 16.8.8 User-defined printers
    • 16.9 Miscellaneous commands
    • 16.10 Running the debugger under Emacs
  • Chapter 17 Profiling (ocamlprof)
    • 17.1 Compiling for profiling
    • 17.2 Profiling an execution
    • 17.3 Printing profiling information
    • 17.4 Time profiling
  • Chapter 18 Interfacing C with Objective Caml
    • 18.1 Overview and compilation information
      • 18.1.1 Declaring primitives
      • 18.1.2 Implementing primitives
      • 18.1.3 Statically linking C code with Caml code
      • 18.1.4 Dynamically linking C code with Caml code
      • 18.1.5 Choosing between static linking and dynamic linking
      • 18.1.6 Building standalone custom runtime systems
    • 18.2 The value type
      • 18.2.1 Integer values
      • 18.2.2 Blocks
      • 18.2.3 Pointers outside the heap
    • 18.3 Representation of Caml data types
      • 18.3.1 Atomic types
      • 18.3.2 Tuples and records
      • 18.3.3 Arrays
      • 18.3.4 Concrete types
      • 18.3.5 Objects
      • 18.3.6 Variants
    • 18.4 Operations on values
      • 18.4.1 Kind tests
      • 18.4.2 Operations on integers
      • 18.4.3 Accessing blocks
      • 18.4.4 Allocating blocks
      • 18.4.5 Raising exceptions
    • 18.5 Living in harmony with the garbage collector
      • 18.5.1 Simple interface
      • 18.5.2 Low-level interface
    • 18.6 A complete example
    • 18.7 Advanced topic: callbacks from C to Caml
      • 18.7.1 Applying Caml closures from C
      • 18.7.2 Registering Caml closures for use in C functions
      • 18.7.3 Registering Caml exceptions for use in C functions
      • 18.7.4 Main program in C
      • 18.7.5 Embedding the Caml code in the C code
    • 18.8 Advanced example with callbacks
    • 18.9 Advanced topic: custom blocks
      • 18.9.1 The struct custom_operations
      • 18.9.2 Allocating custom blocks
      • 18.9.3 Accessing custom blocks
      • 18.9.4 Writing custom serialization and deserialization functions
      • 18.9.5 Choosing identifiers
      • 18.9.6 Finalized blocks
    • 18.10 Building mixed C/Caml libraries: ocamlmklib

Part IV Objective Caml ライブラリ

  • Chapter 19 The core library
    • 19.1 Built-in types and predefined exceptions
    • 19.2 Module Pervasives: the initially opened module
  • Chapter 20 The standard library
  • Chapter 21 The unix library: Unix system calls
  • Chapter 22 The num library: arbitrary-precision rational arithmetic
  • Chapter 23 The str library: regular expressions and string processing
  • Chapter 24 The threads library
  • Chapter 25 The graphics library
  • Chapter 26 The dbm library: access to NDBM databases
  • Chapter 27 The dynlink library: dynamic loading and linking of object files
  • Chapter 28 The LablTk? library: Tcl/Tk GUI interface
  • Chapter 29 The bigarray library
    • 29.1 Module Bigarray: large, multi-dimensional, numerical arrays
    • 29.2 Big arrays in the Caml-C interface
      • 29.2.1 Include file
      • 29.2.2 Accessing a Caml bigarray from C or Fortran
      • 29.2.3 Wrapping a C or Fortran array as a Caml big array

Part V 付録

新規 編集 添付