Proceedings of the 14th International Conference on Modularity 2015
DOI: 10.1145/2724525.2728790
|View full text |Cite
|
Sign up to set email alerts
|

Dynamically composing languages in a modular way: supporting C extensions for dynamic languages

Abstract: Many dynamic languages such as Ruby, Python and Perl offer some kind of functionality for writing parts of applications in a lowerlevel language such as C. These C extension modules are usually written against the API of an interpreter, which provides access to the higher-level language's internal data structures. Alternative implementations of the high-level languages often do not support such C extensions because implementing the same API as in the original implementations is complicated and limits performan… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
17
0

Year Published

2015
2015
2018
2018

Publication Types

Select...
5
3

Relationship

3
5

Authors

Journals

citations
Cited by 27 publications
(17 citation statements)
references
References 21 publications
0
17
0
Order By: Relevance
“…The C⁄C++ code is executed by Sulong [22], an implementation of C⁄C++ on top of Trule. The native interface itself is implemented using Trule's cross-language interoperability mechanism [13,14].…”
Section: Completenessmentioning
confidence: 99%
“…The C⁄C++ code is executed by Sulong [22], an implementation of C⁄C++ on top of Trule. The native interface itself is implemented using Trule's cross-language interoperability mechanism [13,14].…”
Section: Completenessmentioning
confidence: 99%
“…Now we will show how these objects and their members are accessed in the AST. This is done by sending messages to the managed allocations and by resolving these messages at run time [15,18]. All kinds of managed allocations are accessed in a uniform way.…”
Section: Resolving Access Operations At Run Timementioning
confidence: 99%
“…Upon first execution, every message to an object resolves to an object-specific AST snippet (message resolution) [15,18], which is then inserted into the enclosing AST as a replacement for the message. In other words, message resolution replaces object-independent messages by objectspecific ASTs.…”
Section: Resolving Access Operations At Run Timementioning
confidence: 99%
See 1 more Smart Citation
“…In the context of Truffle, some of this "native code" (e.g., Ruby C extensions running on top of TruffleC [5]) is actually also executed by the same VM. In this case, that execution is not considered to be native code by the VM and it is possible to add calls to poll() in that program like in the main guest-language implementation.…”
Section: Running Code In Any Threadmentioning
confidence: 99%