Cg („C for Graphics“) ist eine Hochsprache für GPU-Shader, die Nvidia ab 2002 zusammen mit Microsoft entwickelte. Sie ist eng mit HLSL verwandt (beide teilen dieselbe Sprachfamilie und frühe Compiler-Basis), funktioniert aber API-übergreifend: Ein Cg-Shader konnte sowohl unter OpenGL als auch unter Direct3D eingesetzt werden. Das SIGGRAPH-Paper „Cg: A System for Programming Graphics Hardware in a C-like Language“ (2003, u. a. Mark Kilgard und Randima Fernando) dokumentierte das System.
Besonderheiten
- Cross-API: derselbe Shader-Code für OpenGL- und DirectX-Pipelines, wählbar über Profile
- Profile:
arbvp1/arbfp1(OpenGL-Assembly),vp40/fp40(GeForce-6/7),vs_2_0/ps_3_0(DirectX) - cgc-Compiler: übersetzt Cg nach DirectX-Assembly, OpenGL-Assembly, GLSL oder HLSL
- CgFX: Effekt-Framework, das Techniken, Passes und Shader in einer Datei bündelt
Grundgerüst
void main(
float4 position : POSITION,
out float4 oColor : COLOR
) {
oColor = float4(1.0, 0.5, 0.0, 1.0);
}
Die C-ähnliche Syntax kennt Vektortypen wie float4, Matrizen, Semantics (POSITION, TEXCOORD0, COLOR) und Uniform-Parameter für Werte aus der Anwendung.
Ende und Erbe
Nvidia stellte Cg mit Version 3.1 (April 2012) ein. Die Sprache beeinflusste jedoch die Entwicklung von GLSL und HLSL nachhaltig, und viele Konzepte — Semantics, Profile, Effekt-Frameworks — leben in modernen Systemen weiter (z. B. SPIR-V als plattformneutrales Shader-Format).
Alternativen und Verwandte: GLSL für OpenGL, HLSL für DirectX. Für Nvidias heutige Rechen-Plattform auf der GPU ist CUDA der Nachfolger-Ansatz, für universelle GPU-Berechnungen GPGPU.
troff („typesetter roff") ist der klassische Textformatierer der Unix-Welt: Aus reinen Textdateien mit Formatierkommandos erzeugt er gesetzten Output für Fotosatzbelichter. Zusammen mit dem Schwesterprogramm nroff prägte er Dokumentation und Manpages seit den 1970er-Jahren.
Herkunft und Geschichte
troff entstand bei den Bell Labs: Joseph F. Ossanna entwickelte es ab etwa 1973 für den Fotosatzbelichter Graphic Systems CAT, ausgehend vom früheren roff. nroff ist die Variante für Zeilendrucker und Terminals — beide teilen sich dieselben Makro-Pakete. Brian Kernighan erweiterte troff ab 1979 zum geräteunabhängigen ditroff, das den Weg zu modernen Ausgabegeräten ebnete.
Wichtige Kommandos
.TH TROFF 1 " Titel einer Manpage
.SH NAME " Abschnittsüberschrift
.B fett " Fettschrift
.I kursiv " Kursivschrift
.PP " Absatz
.sp 2 " zwei Leerzeilen
.nf / .fi " Zeilenumbruch aus/an
.ce " zentrieren
.br " Zeilenumbruch erzwingen
Präprozessoren und Makro-Pakete
- tbl: Tabellen (.TS/.TE)
- eqn: mathematische Formeln (.EQ/.EN)
- pic: Diagramme (.PS/.PE)
- refer: Literaturverweise
- Makro-Pakete:
-man,-ms,-mm,-me
Auch heute noch laufen die Manpages von Linux und BSD im Hintergrund über dieses Format. Die moderne GNU-Implementierung ist groff; für wissenschaftlichen Satz wurde später LaTeX populär. Als zeitgemäße Alternative entstand Typst.
Verwandte Themen: TeX-Befehle und Markdown-Referenz.
groff (GNU troff) ist die freie, erweiterte Neuimplementierung des klassischen Unix-Formatters troff. Es liest dieselben Textdateien mit Formatierkommandos und erzeugt daraus PostScript, PDF, HTML, DVI oder Terminal-Ausgabe.
Herkunft
James Clark startete das Projekt Ende der 1980er-Jahre; die erste Veröffentlichung (Version 0.3.1) erschien im Juni 1990. groff ersetzt sowohl das klassische troff als auch nroff und enthält die Präprozessoren eqn, tbl und pic als Teile des Pakets.
Kommandozeile
groff -Tpdf -man manpage.1 > manpage.pdf
groff -Tutf8 -mandoc manpage.1 " Terminal-Ausgabe
groff -Tps -ms dokument.ms -P-a4
Wichtige Optionen
-T: Ausgabegerät (ps, pdf, html, utf8, ascii, dvi, lj4)-man/-mandoc/-ms/-mm/-me: Makro-Paket wählen-e: eqn (Formeln),-t: tbl (Tabellen),-p: pic (Diagramme),-R: refer (Literatur)-K: Eingabe-Encoding,-d: Papierformat setzen
Das man-Kommando jeder Linux-Distribution nutzt groff im Hintergrund, um die Manpages zu rendern — ohne groff gäbe es keine lesbaren Handbuchseiten im Terminal.
Verwandte Themen: TeX, LaTeX und die moderne Alternative Typst; für einfache Auszeichnung reicht oft Markdown.
Typst ist ein modernes Typesetting-System, das als Alternative zu LaTeX entwickelt wurde: schneller, einfacher zu lernen und mit sofortigem Ergebnis. Es kombiniert Markup-Syntax mit eingebauten Kommandos und einer eigenen Skriptsprache.
Herkunft
Entwickelt von Martin Haug, entstand Typst ab 2019 und ist seit 2023 als Open-Source-Projekt auf GitHub verfügbar. Der Compiler ist in Rust geschrieben und läuft als einzelnes, schlankes Programm.
Kommandozeile
typst compile dokument.typ " erzeugt dokument.pdf
typst watch dokument.typ " bei Änderungen neu kompilieren
typst query dokument.typ " Metadaten ausgeben
typst init " Vorlage erstellen
typst fonts " installierte Schriften anzeigen
Sprachkonstrukte
#import "@preview/cetz:0.3.4" " Paket laden
#set page("a4", margin: 2cm) " Dokument einstellen
#let gruppe(n) = [Mitglied #n] " Funktion definieren
#show heading: it => [Überschrift] " Darstellung anpassen
#align(center)[Zentrierter Text]
#importlädt Pakete und Module,#setsetzt Standardwerte#letdefiniert Variablen und Funktionen,#showverändert die Darstellung- Mathematik, Tabellen und Bibliografien sind direkt in der Sprache enthalten
Wo die Klassiker troff/groff und TeX Jahrzehnte alt sind, adressiert Typst vor allem moderne Workflows mit schnellem Feedback.
Verwandte Themen: Markdown-Referenz.
xBase (auch xbase) ist der Sammelbegriff für alle Datenbanksprachen, die auf der Syntax von dBASE aufbauen. Zur Familie gehören dBASE selbst, FoxBASE/FoxPro, Clipper und die Open-Source-Nachfolger Harbour und xHarbour. Gemeinsam sind ihnen das .DBF-Dateiformat, die interpretierte bzw. kompilierte Befehlsbasis und die Arbeit ohne Datenbankserver.
Familienmitglieder
- dBASE (Ashton-Tate, 1981): der Ursprung der Sprache.
- FoxBASE/FoxPro (Fox Software ab 1984, Microsoft ab 1992): deutlich schnellerer dBASE-Klon, später Visual FoxPro mit Objektorientierung.
- Clipper (Nantucket 1985): Compiler, der xBase-Programme in eigenständige EXE-Dateien übersetzt.
- Harbour/xHarbour (1999, Open Source): portierbare Clipper-kompatible Compiler für moderne Plattformen.
Gemeinsame Kernbefehle
USE datei && Tabelle öffnen
SELECT n && Arbeitsbereich wählen
LIST / DISPLAY && Datensätze ausgeben
LOCATE FOR bedingung && sequenzielle Suche
SEEK schluessel && indizierte Suche
REPLACE feld WITH w && Feld aktualisieren
BROWSE && Bearbeitungsmaske
? ausdruck && Ausgabe in die Konsole
DO WHILE ... ENDDO && Schleife
IF ... ELSE ... ENDIF && Verzweigung
Warum xBase heute noch relevant ist
Zahllose Geschäftsanwendungen der 80er- und 90er-Jahre laufen noch mit xBase-Code und .DBF-Daten. Migrationsprojekte überführen diese Bestände häufig nach SQL-Datenbanken — die .DBF-Struktur lässt sich dabei direkt importieren. Auch im Vergleich zu klassischen Automatisierungssprachen wie VBA zeigt sich: xBase war der frühe Standard für datengetriebene Desktop-Anwendungen.