summaryrefslogtreecommitdiff
path: root/idl.mdwn
blob: 5486931d90c254927b25aa14183907818941b4a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[[!meta copyright="Copyright © 2002, 2003, 2007, 2008, 2010 Free Software
Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

[[!meta title="IDL"]]

An *IDL* is an *interface definition language* ([[!wikipedia
Interface_description_language desc="Wikipedia article"]]).  A well-known one
is CORBA.  These are [[DSL]]s.

An IDL compiler takes a specification and generates stub code that hides the
transport details, and by this implements a [[RPC]] system.

In the case of [[Mach's MIG|microkernel/mach/mig]], this hides the marshalling
and unmarshalling of procedures' parameters to and from
[[microkernel/mach/message]] format, according to [[microkernel/Mach]]'s
semantics, and invoking the respective [[microkernel/mach/port]] operations.