Arden2ByteCode

Last updated
Arden2ByteCode
Original author(s) Peter L. Reichertz Institute for Medical Informatics
Developer(s) Peter L. Reichertz Institute for Medical Informatics
Initial release12 September 2011;12 years ago (2011-09-12)
Stable release
v0.7.0 / 2 December 2016;7 years ago (2016-12-02)
Repository github.com/PLRI/arden2bytecode
Written in Java
Operating system BSD, Linux, Mac OS and Microsoft Windows
Platform Java (software platform)
Size 3.2 MB
Standard(s)HL7 International Arden Syntax for Medical Logic Modules (MLMs)
Type compiler
License GNU General Public License, BSD Licence
Website plri.github.io/arden2bytecode

Arden2ByteCode is a free Arden Syntax compiler. The compiler translates HL7 International Arden Syntax for Medical Logic Modules (MLMs) to Java Bytecode. The Arden Syntax is a standardized language that can be used to express medical knowledge. Arden2ByteCode runs on the Java Virtual Machine and can be used on a wide variety of platforms.

Contents

Arden2ByteCode is accompanied by Arden4Eclipse [1] a plugin for the eclipse framework that allows easy development of medical logic modules.

History

Arden2ByteCode was developed as a part or the Lower Saxony research network "Design of Environments for Ageing" (GAL). The GAL network was supported by the Lower Saxony Ministry of Science and Culture through the "Niedersächsisches Vorab" grant programme (grant ZN 2701). [2] Most of the initial development was done in 2011 by Daniel Grunwald. [3] After he left the project the work was continued by Hannes Flicka, [4] Mike Klimek [5] and others. Initially the compiler supported a subset of the standard version 2.5.

Current status

As of 2016 most of version 2.5 is supported. Still missing are the include statement and the until-trigger.

To test the standard compliance a JUnit-based test framework has been developed and can be used to test other compilers as well. [6]

Related Research Articles

Mercury is a functional logic programming language made for real-world uses. The first version was developed at the University of Melbourne, Computer Science department, by Fergus Henderson, Thomas Conway, and Zoltan Somogyi, under Somogyi's supervision, and released on April 8, 1995.

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, HLASM, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, PL/I, Prolog, Python, R, Rexx, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

<span class="mw-page-title-main">Apache Groovy</span> Programming language

Apache Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform. It is both a static and dynamic language with features similar to those of Python, Ruby, and Smalltalk. It can be used as both a programming language and a scripting language for the Java Platform, is compiled to Java virtual machine (JVM) bytecode, and interoperates seamlessly with other Java code and libraries. Groovy uses a curly-bracket syntax similar to Java's. Groovy supports closures, multiline strings, and expressions embedded in strings. Much of Groovy's power lies in its AST transformations, triggered through annotations.

In computer-based language recognition, ANTLR, or ANother Tool for Language Recognition, is a parser generator that uses a LL(*) algorithm for parsing. ANTLR is the successor to the Purdue Compiler Construction Tool Set (PCCTS), first developed in 1989, and is under active development. Its maintainer is Professor Terence Parr of the University of San Francisco.

Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by The Apache Software Foundation, where it was formerly part of the Jakarta Project.

Arden syntax is a markup language used for representing and sharing medical knowledge. This clinical and scientific knowledge language is used in an executable format by clinical decision support systems to generate alerts, interpretations, and to screen and manage messages to clinicians. This syntax is used to share medical knowledge within and across many health service institutions. Rule sets, called Medical Logic Modules (MLMs), comprise enough logic to make a single medical decision. Medical logic modules are written in Arden syntax, and are called by a program – an event monitor – when the condition they are written to help with occurs.

The Java Modeling Language (JML) is a specification language for Java programs, using Hoare style pre- and postconditions and invariants, that follows the design by contract paradigm. Specifications are written as Java annotation comments to the source files, which hence can be compiled with any Java compiler.

<span class="mw-page-title-main">ImageJ</span> Java-based image processing program

ImageJ is a Java-based image processing program developed at the National Institutes of Health and the Laboratory for Optical and Computational Instrumentation. Its first version, ImageJ 1.x, is developed in the public domain, while ImageJ2 and the related projects SciJava, ImgLib2, and SCIFIO are licensed with a permissive BSD-2 license. ImageJ was designed with an open architecture that provides extensibility via Java plugins and recordable macros. Custom acquisition, analysis and processing plugins can be developed using ImageJ's built-in editor and a Java compiler. User-written plugins make it possible to solve many image processing and analysis problems, from three-dimensional live-cell imaging to radiological image processing, multiple imaging system data comparisons to automated hematology systems. ImageJ's plugin architecture and built-in development environment has made it a popular platform for teaching image processing.

<span class="mw-page-title-main">Google Web Toolkit</span> Free Java library

Google Web Toolkit, or GWT Web Toolkit, is an open-source set of tools that allows web developers to create and maintain JavaScript front-end applications in Java. It is licensed under Apache License 2.0.

Haxe is a high-level cross-platform programming language and compiler that can produce applications and source code for many different computing platforms from one code-base. It is free and open-source software, released under an MIT License. The compiler, written in OCaml, is released under the GNU General Public License (GPL) version 2.

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

TypeScript is a free and open-source high-level programming language developed by Microsoft that adds static typing with optional type annotations to JavaScript. It is designed for the development of large applications and transpiles to JavaScript. Because TypeScript is a superset of JavaScript, all JavaScript programs are syntactically valid TypeScript, but they can fail to type-check for safety reasons.

<span class="mw-page-title-main">JUCE</span> C++ Cross-Platform Application Development Framework

JUCE is an open-source cross-platform C++ application framework, used for the development of desktop and mobile applications. JUCE is used in particular for its GUI and plug-ins libraries. It is dual licensed under the GPLv3 and a commercial license.

sbt (software) Open-source build tool for Scala and Java projects

sbt is an open-source build tool created explicitly for Scala and Java projects. It aims to streamline the procedure of constructing, compiling, testing, and packaging applications, libraries, and frameworks. sbt is highly adaptable, permitting developers to customize the build process according to their project's specific needs.

<span class="mw-page-title-main">Google Plugin for Eclipse</span> Set of Java development tools

Google Plugin for Eclipse (GPE) was a set of development tools that enabled Java developers to design, build, optimize, and deploy cloud computing applications. developers in creating complex user interfaces, generating Ajax code using the GWT Web Toolkit, and deploying applications to Google App Engine. GPE installed into the Eclipse integrated development environment (IDE) using the extensible plugin system. GPE was available under the Eclipse Public License 1.0.

Dart is a programming language designed by Lars Bak and Kasper Lund and developed by Google. It can be used to develop web and mobile apps as well as server and desktop applications.

<span class="mw-page-title-main">OpenFL</span> Software framework for video games

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

References

  1. plri.github.io/arden2bytecode/arden4eclipse Arden4Eclipse Eclipse plugin
  2. Gietzelt M, Goltz U, Grunwald D, Lochau M, Marschollek M, Song B, Wolf KH (2012). "Arden2ByteCode: a one-pass Arden Syntax compiler for service-oriented decision support systems based on the OSGi platform". Comput Methods Programs Biomed. 106 (2): 114–25. doi:10.1016/j.cmpb.2011.11.003. PMID   22206864.
  3. github.com/dgrunwald/arden2bytecode
  4. github.com/hflicka/arden2bytecode
  5. github.com/Tetr4/arden2bytecode
  6. Wolf KH, Klimek M (2016). "A Conformance Test Suite for Arden Syntax Compilers and Interpreters". Stud Health Technol Inform. 228 (Exploring Complexity in Health: An Interdisciplinary Systems Approach): 379–83. doi:10.3233/978-1-61499-678-1-379. PMID   27577408.