2002
DOI: 10.7146/brics.v9i34.21749
|View full text |Cite
|
Sign up to set email alerts
|

A Foundation for Embedded Languages

Abstract: Recent work on embedding object languages into Haskell use "phantom types" (i.e., parameterized types whose parameter does not occur on the right-hand side of the type definition) to ensure that the embedded object-language terms are simply typed. But is it a safe assumption that only simply-typed terms can be represented in Haskell using phantom types? And conversely, can all simply-typed terms be represented in Haskell under the restrictions imposed by phantom types? In this article we investigate the condit… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
4
0

Year Published

2005
2005
2011
2011

Publication Types

Select...
3

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(4 citation statements)
references
References 26 publications
0
4
0
Order By: Relevance
“…It might not be clear why an embedded interpreted language could be useful to an application written in ML. After all, languages like ML and Haskell usually have top-level interactive loops, and there are well-studied techniques for expressing embedded-language terms as Haskell terms (Leijen & Meijer, 2000;Rhiger, 2003), so why not just use ML or Haskell? Why have a scripting language?…”
Section: Embedded Scripting For Functional Programsmentioning
confidence: 99%
“…It might not be clear why an embedded interpreted language could be useful to an application written in ML. After all, languages like ML and Haskell usually have top-level interactive loops, and there are well-studied techniques for expressing embedded-language terms as Haskell terms (Leijen & Meijer, 2000;Rhiger, 2003), so why not just use ML or Haskell? Why have a scripting language?…”
Section: Embedded Scripting For Functional Programsmentioning
confidence: 99%
“…When dynamic linking is used for the plugging, the plug-in's functions are registered in a global table in the kernel at load-time. Because all functions do not have the same ML type, phantom types (Rhiger 2003) are used in order to dynamically ensure the program's safety (see Section 4.6). Dynamic linking solves two out of three issues of static linking: it ceases to be necessary for the kernel to be aware of the types of all plug-ins' exported functions, and it becomes more convenient to distribute a plug-in separately from Frama-C (in particular a plugin no longer needs to patch the kernel).…”
Section: Dynamic Loading Of Plug-insmentioning
confidence: 99%
“…Both dynamic loading and journalization rely on phantom types (Rhiger 2003). Phantom types -parameterized types which employ their type variables for encoding meta-information -are used in both cases to ensure the dynamic safety of function calls which cannot be checked by the OCaml type system.…”
Section: Phantom Types For Dynamic Typing In a Static Settingmentioning
confidence: 99%
“…Typechecking object programs can thus be regarded as an orthogonal problem, solved by entirely standard methods. (In cases where object programs are less dynamic and the embedding is shallower, techniques such as phantom types (Rhiger, 2003) can leverage the metalanguage type system to reject ill-typed object programs at compile-time. )…”
Section: Embedding Little Languagesmentioning
confidence: 99%