Academia.eduAcademia.edu

Dynamic Languages

description22 papers
group2,550 followers
lightbulbAbout this topic
Dynamic languages are programming languages that execute many common programming behaviors at runtime rather than at compile-time. This includes features such as dynamic typing, dynamic method resolution, and runtime code modification, allowing for greater flexibility and ease of use in software development.
lightbulbAbout this topic
Dynamic languages are programming languages that execute many common programming behaviors at runtime rather than at compile-time. This includes features such as dynamic typing, dynamic method resolution, and runtime code modification, allowing for greater flexibility and ease of use in software development.

Key research themes

1. How do dynamic languages support interoperability with lower-level languages while preserving performance?

Dynamic languages like Ruby, Python, and Perl often require interoperability with lower-level languages such as C to access system-level functionalities or achieve performance boosts. However, as alternative implementations of these dynamic languages emerge—especially those built on modern virtual machines (VMs) employing just-in-time compilation and optimized data structures—supporting C extensions becomes challenging. The research under this theme investigates mechanisms and models that enable dynamic languages to efficiently support C extensions without sacrificing performance or limiting the advanced optimizations enabled by modern VMs.

Key finding: This work presents a novel modular composition approach that enables dynamic languages like Ruby to support C extensions through interpretation. By composing multiple language interpreters running on the same VM and sharing... Read more
Key finding: The authors introduce python-csp, a Python library implementing synchronous message-passing concurrency based on Hoare's CSP model. The library abstracts away from underlying concurrency implementations (threads, processes,... Read more
Key finding: The workshop highlighted the diverse approaches to dynamic language design and implementation, including support for meta-programming, reflection, concurrency, and embedding within virtual machines. Discussions emphasized the... Read more

2. What are the theoretical frameworks and semantic models informing dynamic language design and meaning interpretation?

Dynamic languages pose unique challenges for formal semantics and meaning representation due to their highly flexible and context-sensitive behavior. This research theme explores conceptual and formal distinctions in semantic theories, including alternative models of linguistic meaning, the role of dynamicness in language interpretation, and frameworks for defining the formal semantics of languages. The insights here inform language design by providing rigorous foundations for understanding program behavior, language composition, and meta-level constructs in dynamic environments.

Key finding: This paper distinguishes three dimensions of 'dynamicness' in linguistic semantics: compositional dynamicness (meanings as context-change potentials), conversation systems dynamicness (non-propositional conversational... Read more
Key finding: The authors propose a uniform formal semantics definition method for modeling languages based on the Alloy language, uniting abstract syntax, static semantics, and dynamic semantics within one analyzable notation. This... Read more
Key finding: The paper introduces linguistic finite automata as a model linking linguistic variables—fuzzy subsets representing vague concepts—to computational representations. By grounding linguistic quantifiers and fuzzy descriptions in... Read more

3. How can object extension and state modification be safely and efficiently managed at runtime in dynamic, feature-oriented languages?

Dynamic languages often support runtime modifications of object behavior via mechanisms like mixins, dynamic modules, or feature binding. Managing such dynamic extensions raises challenges related to object memory layout, method composition, state migration, and complexity of feature activation/deactivation. The research here investigates object models, memory layout strategies, and measurement approaches that enable dynamic languages and feature-oriented programming environments to safely support runtime object extension and reconfiguration, preserving performance and correctness.

Key finding: This work introduces a memory model to support runtime dynamic mixins in statically typed languages, where objects are extended modularly with mixins whose order is unknown at compile time. The model encodes mixin... Read more
Key finding: This research develops a measurement approach to analyze the complexity of object migration due to runtime feature binding/unbinding in dynamic software product lines implemented via feature-oriented programming. It reveals... Read more
Key finding: This paper proposes per-object mixins as an object-level extension mechanism enabling modular, dynamic composition at the granularity of individual objects rather than classes. By allowing objects to be composed with... Read more

All papers in Dynamic Languages

La implementación de aplicaciones móviles está evolucionando aceleradamente, por lo que se requiere optimizar el proceso de desarrollo de software. No obstante, Android, al ser una de las plataformas más aceptadas para aplicaciones en... more
The interaction of language and cultural identity is central to the themes portrayed in the Harlem Renaissance literature. Zora Neale Hurston's short story Spunk illustrates the cultural element and interaction among Blacks during the... more
K-means clustering, a fundamental unsupervised machine learning technique, is widely used in anomaly detection, image recognition, and customer segmentation. Traditional Python implementations, especially those using NumPy, face... more
High level productivity languages such as Python or Matlab enable the use of computational resources by nonexpert programmers. However, these languages often sacrifice program speed for ease of use. This paper proposes Parakeet, a library... more
Recently, much discussion has taken place within the Python programming community on how best to support concurrent programming. This paper describes a new Python library, python-csp, which implements synchronous, message-passing... more
We present a toolkit called Velociraptor that can be used by compiler writers to quickly build compilers and other tools for arraybased languages. Velociraptor operates on its own unique intermediate representation (IR) designed to... more
We present a novel benchmark suite for implementations of vector fields in high-performance computing environments to aid developers in quantifying and ranking their performance. We decompose the design space of such benchmarks into... more
We present a novel benchmark suite for implementations of vector fields in high-performance computing environments to aid developers in quantifying and ranking their performance. We decompose the design space of such benchmarks into... more
Object-oriented programming hasn't created a viable software component industry. From atechnical perspective, the reason for this failure lies in an insufficient consideration of the uniquerequirements of component software.... more
Heterogeneous platforms are now becoming increasing omnipresent due to the availability of multicores at commodity prices. In order to benefit from the immense parallel capability of these multicores, more and more applications are now... more
We extend classic union and intersection type systems with a type-case construction and show that the combination of the union elimination rule of the former and the typing rules for type-cases of our extension encompasses occurrence... more
Attractiveness of programming in scripting languages can arguably be attributed to language features, removal of responsibilities from the programmer, and a rich execution environment. Attractive language features include dynamic typing... more
Researchers must often write their own simulation and analysis software. During this process they simultaneously confront both computational and scientific problems. Current strategies for aiding the generation of performance-oriented... more
Many of the ideas behind object-oriented programming have roots going back to SIMULA. The first substantial interactive, display-based implementation was the SMALLTALK language. The object-oriented style has often been advocated for... more
Motivation: This paper presents libRoadRunner 2.0, an extensible, high-performance, cross-platform, open-source software library for the simulation and analysis of models expressed using Systems Biology Markup Language (SBML). Results:... more
Discrete element modelling (DEM) is widely used to simulate granular systems, nowadays routinely on graphical processing units. Graphics processing units (GPUs) are inherently designed for parallel computation, and recent advances in the... more
As a standard C++ programming model, SYCL has gained popularity on incorporating various parallel computing frameworks. With the development of hardware technologies, low-level computing devices are becoming increasingly varied and thus... more
Several means exist to control when a callin binding is actually effective, i.e, whether or not the base control flow should be intercepted. The most elegant technique is to activate or deactivate a given team instance (see § 5.), which... more
Motivation: Bioinformatics researchers have a variety of programming languages and architectures at their disposal, and recent advances in graphics processing unit (GPU) computing have added a promising new option. However, many... more
Motivation: Bioinformatics researchers have a variety of programming languages and architectures at their disposal, and recent advances in graphics processing unit (GPU) computing have added a promising new option. However, many... more
This article analyses how the number of speakers of the Friulian language changes over time in the territory where this language is traditionally spoken, that is, the provinces of Udine, Pordenone, and Gorizia, located in the north-east... more
Most dynamic languages allow users to turn text into code using various functions, often named eval, with language-dependent semantics. The widespread use of these reflective functions hinders static analysis and prevents compilers from... more
Discrete element modelling (DEM) is widely used to simulate granular systems, nowadays routinely on graphical processing units. Graphics processing units (GPUs) are inherently designed for parallel computation, and recent advances in the... more
Scalability is an important property of every large-scale recommender system. In order to ensure smooth user experience, recommendation algorithms should be optimized to work with large amounts of user data. This paper presents the... more
Scalability is an important property of every large-scale recommender system. In order to ensure smooth user experience, recommendation algorithms should be optimized to work with large amounts of user data. This paper presents the... more
This article analyses how the number of speakers of the Friulian language changes over time in the territory where this language is traditionally spoken, that is, the provinces of Udine, Pordenone, and Gorizia, located in the north-east... more
Object Tcl is an extension to the Tool Command Language (Tcl) for the management of complicated data types and dynamic object-oriented p r ogramming in general. We believe it is a worthy alternative to other object-oriented p r ogramming... more
Heterogeneous platforms are now becoming increasing omnipresent due to the availability of multicores at commodity prices. In order to benefit from the immense parallel capability of these multicores, more and more applications are now... more
In matters of research in feature-oriented programming, the need for efficient analysis and evaluation of existing projects arises prominently. The open-source project FeatureIDE seeks to satisfy the demand for tools of such kind. The... more
This paper introduces CASTE (Classes, A Sensible Tcl Extension), a class system for Tcl that, in its simplest form, enables the creation and manipulation of structured objects, but more generally provides an entire object-oriented class... more
Despite advancements in the areas of parallel and distributed computing, the complexity of programming on High Performance Computing (HPC) resources has deterred many domain experts, especially in the areas of machine learning and... more
The use of graphics processing units (GPUs) in high-performance parallel computing continues to become more prevalent, often as part of a heterogeneous system. For years, CUDA has been the de facto programming environment for nearly all... more
From laptops to supercomputer nodes hardware architectures become increasingly heterogeneous, combining at least multiple general-purpose cores with one or even multiple GPU accelerators. Taking effective advantage of such systems’... more
Context: A Software Product Line (SPL) is a set of software systems (products) that share common functionalities, so-called features. When different features are related, we consider this as feature dependencies. As the SPL evolves,... more
The use of graphics processing units (GPUs) in high-performance parallel computing continues to become more prevalent, often as part of a heterogeneous system. For years, CUDA has been the de facto programming environment for nearly all... more
Several researchers have proposed the various classes of software attributes to guide in the derivation of metrics for software products. These existing classifications have targeted traditional software paradigms such as procedural and... more
Many of the most effective attempts to harness the power of the Graphics Processing Unit (GPU) to accelerate Genetic Programming (GP) have dynamically compiled code for individuals as they are to be evaluated. This approach executes very... more
Current GPUs are massively parallel multicore processors optimised for workloads with a large degree of SIMD parallelism. Good performance requires highly idiomatic programs, whose development is work intensive and requires expert... more
We present a novel high-level parallel programming model for graphics processing units (GPUs). We embed GPU kernels as data-parallel array computations in the purely functional language Haskell. GPU and CPU computations can be freely... more
As a consequence of the immense computational power available in GPUs, the usage of these platforms for running data-intensive general purpose programs has been increasing. Since memory and processor architectures of CPUs and GPUs are... more
The use of graphics processing units (GPUs) in high-performance parallel computing continues to become more prevalent, often as part of a heterogeneous system. For years, CUDA has been the de facto programming environment for nearly all... more
The use of accelerators in high-performance computing is increasing. The most commonly used accelerator is the graphics processing unit (GPU) because of its low cost and massively parallel performance. The two most common programming... more
High-performance computing has recently seen a surge of interest in heterogeneous systems, with an emphasis on modern Graphics Processing Units (GPUs). These devices offer tremendous potential for performance and efficiency in important... more
Contents z Introduction z Method wrappers z Interpreter z Compatiblity issues z Demo z References y Run-time typing information y … z Current tools y Smalltalk reflection y Low-level, hard to understand, operational x Bytecodes,... more
Commodity many-core hardware is now mainstream, but parallel programming models are still lagging behind in efficiently utilizing the application parallelism. There are (at least) two principal reasons for this. First, real-world programs... more
Dynamique des langues dans I'espace : constats Novembre 1995 R. NicolaÏ GDRE 1172 du CNRS. Avant Propos' Le thème de ce séminaire ', Iangues dans I'espace : l'expression de l'espace dans les langues de types différents, autorise un... more
Feature-oriented programming (FOP) is a programming technique based on composition mechanisms, called refinements. It is often assumed that the use of feature-oriented programming is better than other variability mechanisms for... more
Download research papers for free!