C APIs in Extension and Extensible Languages

@article{Muhammad2007CAI,
  title={C APIs in Extension and Extensible Languages},
  author={Hisham H. Muhammad and R. Ierusalimschy},
  journal={J. Univers. Comput. Sci.},
  year={2007},
  volume={13},
  pages={839-853}
}
Scripting languages are used in conjuction with C code in two ways: as extension languages, where the interpreter is embedded as a library into an applica- tion; or as extensible languages, where the interpreter loads C code as add-on modules. These two scenarios share many similarities, as in both of them two-way communi- cation of code and data needs to take place. However, the differences between them impose design tradeoffs that affect the C API that bridges the two languages, often making… Expand
A practical solution for achieving language compatibility in scripting language compilers
TLDR
This work presents a technique to support three important features of scripting languages that are difficult to compile or reimplement in an ahead-of-time compiler for PHP, and allows it to automatically support limited future language changes. Expand
A practical solution for scripting language compilers
TLDR
This work presents a technique to support three important features of scripting languages that are difficult to compile or reimplement in an ahead-of-time compiler for PHP, particularly focusing on the correctness of compiled programs. Expand
Dynamic Language Bindings for C Libraries with emphasis on their application to R
TLDR
A middleware architecture for scripting languages is discussed that provides for seamless dynamic scripting access to the C API of native libraries without the need for compilation of wrapper modules. Expand
Design and implementation of an ahead-of-time compiler for PHP
TLDR
It is argued that ahead-of-time compilation of scripting languages is both possible and valuable, and the design and implementation of the compiler are described, and specific challenges in the design of a compiler for a dynamic scripting language are identified. Expand
LuaRocks - A Declarative and Extensible Package Management System for Lua
TLDR
LuaRocks is presented, a package manager for Lua modules that adopts a declarative approach for specifications using Lua itself as a description language and features an extensible build system that copes with the heterogeneity of the Lua ecosystem. Expand
Scriptable operating systems with Lua
TLDR
The concept of scriptable operating system is proposed, which applies scripting development paradigm to the concept of extensible operating systems, and an implementation of a kernel-scripting environment that allows users to dynamically extend Linux and NetBSD operating systems using the scripting language Lua. Expand
Gradual C Programming for Typed Lua
TLDR
An extension of the compiler and virtual machine of Lua, named Modified Lua, that does allow the direct manipulation of raw memory is presented, which achieves significant performance advantages over the dynamically-typed language Lua using features from the statically-typing programming language C. Expand
How to Integrate Formal and Informal Settings in Massive Open Online Courses Through a Transgenic Learning Approach
TLDR
This book chapter discusses the specific implementation of a personalised eLearning model for restricted social networks and learning management systems, called LIME, which supports this approach and presents a framework and software prototype that implements the model (iLIME). Expand
A recommendation model on personalised learning to improve the user ’ s performance and interaction in MOOCs and OERs
Current models and methodologies in the field of educational technology are lacking in engagement between formal and informal learning. Usually, only activity within a formal environment (i.e.,Expand

References

SHOWING 1-10 OF 31 REFERENCES
Extending and embedding the python interpreter
TLDR
This document describes how to write modules in C or C++ to extend the Python interpreter with new modules, which can define new functions but also new object types and their methods. Expand
SWIG: An Easy to Use Tool for Integrating Scripting Languages with C and C++
TLDR
Simplified Wrapper and Interface Generator has been primarily designed for scientists, engineers, and application developers who would like to use scripting languages with their C/C++ programs without worrying about the underlying implementation details of each language or using a complicated software development tool. Expand
Python reference manual
TLDR
This reference manual describes the syntax and ``core semantics'' of the Python language, which is terse, but attempts to be exact and complete. Expand
H/Direct: a binary foreign language interface for Haskell
TLDR
This work provides a relatively formal and precise definition of the mapping between Haskell and IDL, which allows Haskell to call both C and COM, and allows a Haskell component to be wrapped in a C or COM interface. Expand
Python Reference Manual
TLDR
This reference manual describes the syntax and ``core semantics'' of the Python language, which is terse, but attempts to be exact and complete. Expand
Tcl: An Embeddable Command Language
TLDR
Tel is an interpreter for a tool command language that is embedded in tools (such as editors, debuggers, etc.) as the basic command interpreter and provides a parser for a simple textual command language and a C interface that tools use to augment the built-in commands with tool-specific commands. Expand
Scripting: Higher-Level Programming for the 21st Century
TLDR
This article explains why scripting languages will handle many of the programming tasks in the next century better than system programming languages. Expand
Java Native Interface: Programmer's Guide and Reference
TLDR
This book summarizes two years of collective experience gained by engineers at Sun Microsystems as well as the vast number of developers in the Java technology community to create the definitive JNI specification for the Java 2 platform. Expand
The Java Language Specification
TLDR
The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language. Expand
Programming Ruby: the pragmatic programmer's guide
TLDR
Ruby is an Object-Oriented Language Some Basic Ruby Arrays and Hashes Control Structures Regular Expressions Blocks and Iterators Reading and 'Riting Onward and Upward and more. Expand
...
1
2
3
4
...