Jason Bock · Apress eBooks · 2002
Java. Smalltalk. C++. Pascal. Eiffel. JavaScript. Perl. Ruby. Python. Visual Basic. Ada. Scheme… the list of programming languages goes on and on. I'm sure that you've used at least one language in your development career as your primary vehicle for creating programs. You may have added other languages to your programming toolbox, and not necessarily by your own choice. You've been comfortably creating your in-house applications in language X until someone gets the bright idea that all code should now be written in language Y. Time and money have been wasted over and over again in corporations because these language changes have forced developers to rewrite entire applications. The reason? The new code couldn't use the old code's logic. But that changes in .NET.KeywordsCommand LineHuman LanguageCustomer OrderExecutable CodeIntermediate LanguageThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Cited by 1
Leal, José Paulo, Queirós, Ricardo · Portuguese National Funding Agency for Science, Research and Technology (RCAAP Project by FCT) · 2011
The concept of Learning Object (LO) is fundamental for producing, sharing and reusing content in eLearning. In essence a LO is a container with educational material and metadata describing it. Since most LOs just present content to students they contain documents in presentation formats such as HTML and PDF, along with metadata on these documents and the LO itself using generic standards such as LOM and SCORM. If the LO includes an exercise for automatic evaluation then a resource must formally described it. The Question and Tests Interoperability (QTI) is an example of standard for this kind of definitions that is supported by several eLearning systems. However, QTI was designed for questions with predefined answers and cannot be used for complex evaluation domains, such programming exercise evaluation.
Cited by 0Open access
Peter-michael Osera, Steve Zdancewic · 2012
Language interoperability is not a new research area for the programming languages community. In the early 2000s, considerable effort went into understanding how to efficiently marshal data between two interoperating languages. The “last word ” in this area was the birth of the.NET framework which solved the problem by unifying the data model that interoperating languages utilize. Since then, both the.NET framework and the JVM have evolved to handle increasingly larger classes of programming languages, most recently dynamic languages with.NET’s DLR and Java’s Da Vinci machine project. One of the biggest meta-problems that programming language researchers face when developing new languages with fancy type systems is that of relevance. More often than not, the advanced types of these languages make it difficult to understand how to extend these works into more mainstream languages so that they can be enjoyed by the masses. Because of this, it is difficult for a language designer to make the critical argument that their creation is relevant and useful. Language interoperability makes this situation much more palatable. Imagine a world where your fancy linearly-typed or dependently-typed language could interoperate with the mainstream programming language you use for day-to-day work. As an end-user, this is great because the barrier to adopting the fancy language has been greatly lowered. But as a researcher, now we can leverage a mainstream programming language’s
Cited by 0
Jaime Kolln, Steve Widergren, Cuong Nguyen et al. · OSTI OAI (U.S. Department of Energy Office of Scientific and Technical Information) · 2020
Achieving interoperability involves reaching agreement on common interfaces and promoting interoperability through performance specifications. Effective integration practices are a simple, effective, and direct way of addressing the challenge. By deciding on an integration approach with well-defined interfaces and selecting systems and devices that conform to that approach and choosing integrators that have experience implementing the chosen approach, many problems can be avoided. No integration effort is seamless but by specifying interoperability requirements during the procurement process typical problems from ad hoc approaches can be avoided or reduced. By continuing this approach to its conclusion at the end of the procurement process, these same interoperability requirements may lead themselves to specified performance criteria that can be used to measure interoperability during implementation. The contractual language may contain performance incentives and penalties tied to these requirements as appropriate.
Cited by 1Open access
Johan Brichau · VUBIR (Vrije Universiteit Brussel) · 2009
Cited by 0
Ricardo Queirós, José Paulo Leal · Portuguese National Funding Agency for Science, Research and Technology (RCAAP Project by FCT) · 2011
Several standards appeared in recent years to formalize the metadata of learning objects, but they are still insufficient to fully describe a specialized domain. In particular, the programming exercise domain requires interdependent resources (e.g. test cases, solution programs, exercise description) usually processed by different services in the programming exercise life-cycle. Moreover, the manual creation of these resources is time-consuming and error-prone leading to what is an obstacle to the fast development of programming exercises of good quality. This paper focuses on the definition of an XML dialect called PExIL (Programming Exercises Interoperability Language). The aim of PExIL is to consolidate all the data required in the programming exercise life-cycle, from when it is created to when it is graded, covering also the resolution, the evaluation and the feedback. We introduce the XML Schema used to formalize the relevant data of the programming exercise life-cycle. The validation of this approach is made through the evaluation of the usefulness and expressiveness of the PExIL definition. In the former we present the tools that consume the PExIL definition to automatically generate the specialized resources. In the latter we use the PExIL definition to capture all the constraints of a set of programming exercises stored in a learning objects repository.
Cited by 9Open access
Athanasios Stratikopoulos, Florin Blanaru, Juan Fumero et al. · Zenodo (CERN European Organization for Nuclear Research) · 2023
In recent years, the Java Virtual Machine has evolved from a cross-ISA virtualization layer to a system that can also offer multilingual support. GraalVM paved the way to enable the interoperability of Java with other programming languages, such as Java, Python, R and even C++, that can run on top of the Truffle framework in a unified manner. Additionally, there have been numerous academic and industrial endeavors to bridge the gap between the JVM and modern heterogeneous hardware resources. All these efforts beacon the opportunity to use the JVM as a unified system that enables interoperability between multiple programming languages and multiple heterogeneous hardware resources. In this paper, we focus on the interoperability of code that accelerates applications on heterogeneous hardware with multiple programming languages. To realize that concept, we employ TornadoVM, a state-of-the-art software for enabling various JDK distributions to exploit hardware acceleration. Although TornadoVM can transparently generate heterogeneous code at runtime, there are several challenges that hinder the portability of the generated code to other programming languages and systems. Therefore, we analyze all challenges and propose a set of modifications at the compiler and runtime levels to constitute Java as a prototyping language for the generation of heterogeneous code that can be used by other programming languages and systems.
Cited by 0Open access
Johan Ullberg, Pontus Johnson, Markus Buschle · Lecture notes in business information processing · 2011
Decision-making on issues related to interoperability can be furthered by the use of models of the organization or information system where interoperability is of concern. In order to provide decision-making support, the models should be amenable to analyses. This paper presents a modeling language specifically for interoperability issues where interoperability is defined as the probability that two more actors will be able to exchange information and use that information. The language is coupled with a probabilistic mechanism for automated interoperability assessments of the models created. The paper also presents an example of how the language can be applied.
Cited by 6Open access
Gilmore, Stephen, Cook, Jonathan J · OpenGrey (Institut de l'Information Scientifique et Technique) · 2005
We discuss P#, our implementation of a tool which allows interoperation between a concurrent superset of the Prolog programming language and C#. This enables Prolog to be used as a native implementation language for Microsoft's .NET platform. P# compiles a linear logic extension of Prolog to C# source code. We can thus create C# objects from Prolog and use C#'s graphical, networking and other libraries. P# was developed from a modified port of the Prolog to Java translator, Prolog Cafe. We add language constructs on the Prolog side which allow concurrent Prolog code to be written. We add a primitive predicate which evaluates a Prolog structure on a newly forked thread. Communication between threads is based on the unification of variables contained in such a structure. It is also possible for threads to communicate through a globally accessible table. All of the new features are available to the programmer through new built-in Prolog predicates. We present three case studies. The first is an application which allows several users to modify a database. The users are able to disconnect from the database and to modify their own copies of the data before reconnecting. On reconnecting, conflicts must be resolved. The second is an object-oriented assistant, which allows the user to query the contents of a C# namespace or Java package. The third is a tool which allows a user to interact with a graphical display of the inheritance tree. Finally, we optimize P#'s runtime speed by translating some Prolog predicates into more idiomatic C# code than is produced by a naive port of Prolog Cafe. This is achieved by observing that semi-deterministic predicates (being those which always either fail or succeed with exactly one solution) that only call other semi-deterministic predicates enjoy relatively simple control flow. We make use of the fact that Prolog programs often contain predicates which operate as functions, and that such predicates are usually semi-deterministic.
Cited by 0
David Chisnall · Queue · 2013
Interoperability between languages has been a problem since the second programming language was invented. Solutions have ranged from language-independent object models such as COM (Component Object Model) and CORBA (Common Object Request Broker Architecture) to VMs (virtual machines) designed to integrate languages, such as JVM (Java Virtual Machine) and CLR (Common Language Runtime). With software becoming ever more complex and hardware less homogeneous, the likelihood of a single language being the correct tool for an entire program is lower than ever. As modern compilers become more modular, there is potential for a new generation of interesting solutions.
Cited by 9Open access
Ananiadou, S, Thompson, P, Kano, Y et al. · Research Explorer (The University of Manchester) · 2011
A core component of the European Union is a common market with a single information space that works with around two dozen national languages and many regional languages. This wide variety of languages presents linguistic barriers that can severely limit the free flow of goods, information and services throughout Europe.In this article, we provide an overview of the META-NET Network of Excellence [1]. This is an ambitious initiative, consisting of 44 centres from 31 countries in Europe, aiming to improve significantly on the number of language technologies that can assist European citizens, by supporting enhanced communication and co-operation across languages. A major outcome of the project will be META-SHARE, a searchable network of repositories that collect together resources such as language data, tools and related Web services, covering a large number of European languages. The resources within these repositories are intended to facilitate the development and evaluation of a wide range of new language processing applications and services.Various new applications can be built by combining together existing resources in different ways. This process can be helped greatly by ensuring that individual resources are interoperable, i.e., that they can be combined together with little or no configuration. The UIMA (Unstructured Information Management Architecture) framework [2][3] is concerned specifically with ensuring the interoperability of resources, and the U-Compare platform [4][5][6], built on top of UIMA, is designed especially to facilitate the rapid construction and evaluation of natural language- processing/text-mining applications using interoperable resources, without the need for any additional programming. U-Compare comes together with a library of resources of several different types. As part of META-NET, this library will be extended to cover a number of different European languages. The functionality of U-Compare will also be enhanced to allow the use of multi-lingual and cross-lingual components, such as those that carry out automatic machine translation. By integrating and showcasing the functionality of U-Compare within META-SHARE, it is intended to demonstrate that META-SHARE can serve not only as a useful tool to locate language resources for a range of languages, but also act as an integrated environment that allows for rapid prototyping and testing of applications that make use of these resources.
Cited by 0
Andreas L. Opdahl · 2011
Interoperability between model-driven software technologies can become easier to achieve if the models and modelling languages used are made interoperable too. One way to achieve interoperability is to capture the semantics of modelling language constructs and model elements by mapping them to semantic models, such as ontologies. The paper proposes a set of extensions for XML-based modelling language specifications. The extensions have the potential to work equally well for model representations. The purpose is to support fine-grained and structured semantic annotations of languages and, eventually, of models. The proposal is inspired by the Semantic Annotations for WSDL and XML (SAWSDL) recommendation and on the Unified Enterprise Modelling Language (UEML). The proposal is exemplified using the Action and ActionExecution constructs from UML 2.2.
Cited by 3
Stratikopoulos, Athanasios, Blanaru, Florin, Fumero, Juan et al. · Zenodo (CERN European Organization for Nuclear Research) · 2023
In recent years, the Java Virtual Machine has evolved from a cross-ISA virtualization layer to a system that can also offer multilingual support. GraalVM paved the way to enable the interoperability of Java with other programming languages, such as Java, Python, R and even C++, that can run on top of the Truffle framework in a unified manner. Additionally, there have been numerous academic and industrial endeavors to bridge the gap between the JVM and modern heterogeneous hardware resources. All these efforts beacon the opportunity to use the JVM as a unified system that enables interoperability between multiple programming languages and multiple heterogeneous hardware resources. In this paper, we focus on the interoperability of code that accelerates applications on heterogeneous hardware with multiple programming languages. To realize that concept, we employ TornadoVM, a state-of-the-art software for enabling various JDK distributions to exploit hardware acceleration. Although TornadoVM can transparently generate heterogeneous code at runtime, there are several challenges that hinder the portability of the generated code to other programming languages and systems. Therefore, we analyze all challenges and propose a set of modifications at the compiler and runtime levels to constitute Java as a prototyping language for the generation of heterogeneous code that can be used by other programming languages and systems.
Cited by 0Open access
David Chisnall · Communications of the ACM · 2013
Interfacing between languages is becoming more important
Cited by 28
Jonathan J. Cook · ERA · 2005
We discuss P#, our implementation of a tool which allows interoperation between a concurrent superset of the Prolog programming language and C#. This enables Prolog to be used as a native implementation language for Microsoft’s.NET platform. P# compiles a linear logic extension of Prolog to C # source code. We can thus create C# objects from Prolog and use C#’s graphical, networking and other libraries. P # was developed from a modified port of the Prolog to Java translator, Prolog Café. We add language constructs on the Prolog side which allow concurrent Prolog code to be written. We add a primitive predicate which evaluates a Prolog structure on a newly forked thread. Communication between threads is based on the unification of variables contained in such a structure. It is also possible for threads to communicate through a globally accessible table. All of the new features are available to the programmer through new built-in Prolog predicates. We present three case studies. The first is an application which allows several users to modify a database. The users are able to disconnect from the database and to modify
Cited by 3Open access
Md Dahalin, Zulkhairi, Wahid, Juliana · Universiti Utara Malaysia Institutional Repository (Universiti Utara Malaysia) · 2002
States of the art workflow management system (WFMS) do not have adequate features of interoperability among WFMSs that cause incompatible “islands” of process automation within an organization or between organizations. This paper introduces method of interoperability that accommodate the variety of implementation techniques in realizing the WFMS interoperability. To realizing the workflow interoperability, this paper uses two CVFhIS products in the market, i.e. Domino Workflow and Microsoft Exchange 2000 Server. The method that lies in a workflow interoperability framework is a major contribution of this paper. The framework consists of both WFMS products together with two interoperability tools, i.e. Microsoft Exchange Connector for Lotus Notes and Document Object Model (DOM) af Ertensible Markup Language (XML) standard that addressing the communication and exchanging document issues between both WFMS products. To demonstrate the workflow interoperability of our approach, a prototype system has been implemented.
Cited by 0
Zulkhairi Dahalin, Juliana Wahid · Student Conference on Research and Development · 2003
States of the art workflow management systems (WFMS) do not have adequate features of interoperability among WFMSs that cause incompatible "islands" of process automation within an organization or between organizations. This paper introduces method of interoperability that accommodates the variety of implementation techniques in realizing the WFMS interoperability. To realize the workflow interoperability, this paper uses two WFMS products in the market, i.e. Domino Workflow and Microsoft Exchange 2000 Server. The method that ties in a workflow interoperability framework is a major contribution of this paper. The framework consists of both WFMS products together with two interoperability tools, i.e. Microsoft Exchange Connector for Lotus Notes and Document Object Model (DOM) of Extensible Markup Language (XML) standard that addresses the communication and exchange document issues between both WFMS products. To demonstrate the workflow interoperability of our approach, a prototype system has been implemented.
Cited by 1
Andreas Witt, Gilles Sérasset, Susan Armstrong et al. · HAL (Le Centre pour la Communication Scientifique Directe) · 2006
International audience
Cited by 0
Trajanovska, Elena, Gjurovikj, Maja, Ivanova, Biljana · Goce Delchev University Repository (Goce Delčev University of Štip) · 2020
One of the pivotal prerequisites a country is to meet in order to participate in the collective defence system, i.e. NATO, is to develop interoperability at all levels within the military structures and capacities. One of the aspects of achieving interoperability is standardization in the realm of language proficiency, measured against the Standardized Agreement (STANAG) 6001. STANAG 6001, in addition to statements and declarations, contains the STANAG 6001 language proficiency scale according to which Standardized Language Profiles (SLPs) should be recorded and reported. This paper aims to explore the significance of standard-based education for achieving language interoperability in NATO through an analysis of the language programs implemented in the Armed Forces with recommendations and directions of improvement thereof.
Cited by 0Open access
Mohamed Riduan Abid, Mrigank Pawagi, Sudeepta Adhikari et al. · 2024
Code translation from one programming language to another has been a topic of interest for academia and industry for a long time, and has recently re-emerged with the advent of Large Language Models (LLMs). While progress has been made in translating small code snippets, tackling larger projects with intricate dependencies remains a challenging task. A significant challenge in automating such translations is validating the resulting code. Translating existing tests to the target language can introduce errors, yielding potentially misleading quality assurance even when all the translated tests pass. We propose the idea of testing the translated code using the existing, untranslated tests written in the original programming language. The key to our idea is to leverage language interoperability to run code written in two different languages together. This partial translation approach offers two main benefits: (1) the ability to leverage original tests for validating translated code, not only from the project being translated but also from the clients using this project, and (2) the continuous maintainability and testability of the project during translation. We evaluate our approach by translating from Java to Python two popular Java libraries, Apache Commons CLI and Apache Commons CSV, with 1209 lines of code (in 22 Java files) and 860 lines of code (in 10 Java files), respectively. Our implementation uses Oracle's GraalVM framework for language interoperability. We successfully validate the translation using the original Java tests, not just from the CLI and CSV libraries themselves but also from client projects of these libraries (30 for CLI and 6 for CSV). Our approach is the first to systematically and semi-automatically validate translations for such nontrivial libraries.
Cited by 3