Jana (Informatik)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Jana (Java-Based Abstract Notation for Algorithms) ist eine an die Programmiersprache Java angelehnte Beschreibungssprache zur Formulierung von Algorithmen, ein so genannter Pseudocode. Sie wird an der Johannes Kepler Universität Linz in der Algorithmen-Einführungsveranstaltung seit 2003[1] verwendet.

Notation[Bearbeiten | Quelltext bearbeiten]

Hauptunterschiede zu der Programmiersprache Java sind die Hinzufügung von Pascal-ähnlichen Sprachkonstrukten, eine Klassifikation von Funktionsparametern und die nicht-formale Spezifikation von einigen gängigen Pseudo-Code-Konstrukten bzw. Konzepten.

Als Pascal-Syntax-Elemente sind zum Beispiel repeat-Schleifen und Pascal-Array-Deklarationen hinzugefügt. Ein Beispiel für eine nicht-formale Spezifikation eines üblichen Pseudo-Code-Konzeptes ist, dass der Typ eines Parameters angeschrieben werden kann, aber nicht angeschrieben werden muss, wenn er eindeutig hervorgeht oder irrelevant für die Lösung ist. Ein weiteres Beispiel ist das Erlauben von beliebigen Ausdrücken in Fallunterscheidungsanweisungen. Funktionsparameter werden mit vorangestellten Pfeilen annotiert. Sie zeigen, ob es sich um einen sogenannten Eingangs- (↓), Ausgangs- (↑) oder Übergangsparameter (↕) handelt.

Beispiel:

List sort ( ↓List l ) {
  Anweisungen
  return sorted_list
}

Syntaxhervorhebung[Bearbeiten | Quelltext bearbeiten]

Zur Präsentation in Dokumenten oder auf Websites wird oft eine Art von Syntaxhervorhebung erwartet. Auch für Jana gibt es für diese Verwendung eine Erweiterung für das oft genutzte Softwarepaket pygments[2]. Obwohl sie sich noch in Entwicklung befindet, kann sie Erweiterung pygments-jana[3] bereits zum Hervorheben der Jana-eigenen Syntaxelemente verwendet werden.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. https://ssw.jku.at/Teaching/Lectures/Algo/Jana.pdf
  2. Welcome! — Pygments. Abgerufen am 15. März 2018 (englisch).
  3. Max Heisinger: maximaximal/pygments-jana. Abgerufen am 15. März 2018 (englisch).