Oberon/oberongenealogy.gv
Appearance
< Oberon
/*
Author: Ivan Denisov iadenisov@oberon.org
License: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
http://pub.iadenisov.ru/blackbox/oberongenealogy.gv
dot oberongenealogy.gv -Tpdf -o oberongenealogy.pdf
dot oberongenealogy.gv -Tsvg -o oberongenealogy.svg
*/
digraph genealogy {
margin=0.1;
node [fontname="Verdana", fontsize="12", shape="rect"]
edge [fontname="Verdana", fontsize="8"]
/* programming languages */
pascal [label="Pascal (N.Wirth)"]
modula2 [label="Modula-2 (N.Wirth)"]
oberon [label="Oberon (N.Wirth)"]
oberon2 [label="Oberon-2\n(N.Wirth, H.Mössenböck)"]
oberonsa [label="Oberon-SA (N.Wirth)"]
oberon07 [label="Oberon-07 (N.Wirth)"]
objectoberon [label="Object Oberon\n(H.Mössenböck, J.Templ, R.Griesemer)"]
componentpascal [label="Component Pascal"]
oberonl [label="Oberon/L"] // http://oberoncore.ru/library/leigh_make_way_for_oberon-f
activeoberon [label="Active Oberon, 1997\n(B.Hansen, J.Gutknecht, P.Muller, P.Reali)"]
zonnon [label="Zonnon (J.Gutknecht)"]
eo [label="Oberon-07/Oberon-2, 2020 Edition\n(A.Pirklbauer)"]
pascal, modula2, oberon, oberon2, oberon07, componentpascal, oberonl, oberonsa, objectoberon,
activeoberon, zonnon, eo [style="rounded,filled", fillcolor="#cce6ff"]
/* people */
// wirth [label="Niklaus Wirth"]
//mössenböck [label="Hanspeter Mössenböck"]
//szyperski [label="Clemens Szyperski"]
//pfister [label="Cuno Pfister"]
//heeb [label="Beat Heeb"]
//gutknecht [label="Jürg Gutknecht"]
//templ [label="Josef Templ"]
// shiryaev [label="Alexander Shiryaev"]
// mössenböck, szyperski, pfister, heeb, gutknecht, templ [shape="ellipse", style="filled", fillcolor="#d9b3ff"] // wirth
/* organizations */
// eth [label="ETH-Zürich"]
ominc [label="1993, Oberon microsystems Inc.\n(C.Pfister, B.Heeb, M.Franz, C.Szyperski)"] // http://oberon.ch
// esmertec [label="1999, Esmertec"] // https://www.esmertec.com/
cronosgroup [label="1985, Kronos Research Group"] // http://www.kronos.ru/members
excelsior [label="1999, Exlesior Inc."] // http://www.excelsior.ru/history
ominc, cronosgroup, excelsior [shape="rect", style="filled", fillcolor="grey"] // esmertec
/* systems */
oberonsystem [label="1985, Oberon System\n(N.Wirth, J.Gutknecht)", group="ob1"]
oberonv1v2 [label="1987/1991, Oberon V1/V2"] // https://en.wikipedia.org/wiki/Oberon_(operating_system)
medos2 [label="Medos-2"]
oberonv4 [label="1994, Oberon V4\n(Linz Oberon)"]
oberonv5 [label="2013, Oberon V5\n(N.Wirth, J.Gutknecht, P.Reed)"]
oberonsystem3 [label="1991, Oberon System 3\n(ETH Oberon)"]
a2 [label="A2 (ex. Bluebottle)"]
oberonf [label="Oberon/F", group="bb"]
blackbox [label="BlackBox Component Builder", group="bb"]
excelsioros [label="Excelsior OS"]
ethos [label="ETHOS\n(C.Szyperski)"] // http://oberoncore.ru/library/szypreski_insight-ethos_on_object-orientation_in_operating_systems
// portos [label="OS Portos"]
// jbed [label="JBed"]
extendedoberon [label="Extended Oberon\nA.Pirklbauer"]
blackbox, oberonf, oberonv1v2, medos2, oberonv4, oberonv5, oberonsystem, oberonsystem3, ethos,
excelsioros, a2, extendedoberon [style="filled", fillcolor="gold"] // portos, jbed
/* compilers */
xds [label="XDS"]
o7 [label="O7 (A.Shiryaev)"]
astrobe [label="Astrobe (C.Burrows)"]
xds, o7, astrobe [style="filled", fillcolor="#00ff80"]
/* workstations */
lilith [label="1977, Lilith"] // https://en.wikipedia.org/wiki/Lilith_(computer)
kronos [label="1987, Kronos-2.6WS"] // http://www.computer-museum.ru/histussr/kronos.htm
ceres [label="1985, Ceres", group="ob1"] // https://en.wikipedia.org/wiki/Ceres_(workstation)
osFPGA [label="2013, FPGA OberonStation"]
kronos, ceres, lilith, osFPGA [shape="box3d", style="filled", fillcolor="#ffb3b3"]
/* relations */
// wirth -> {pascal modula2 ominc oberon oberonv5 oberon07 lilith ceres oberonsystem oberonsa oberon2}
// gutknecht -> { lilith modula2 oberonsystem oberonsystem3 activeoberon oberonv5 zonnon}
// mössenböck -> { oberon2 oberonv4 objectoberon }
// szyperski -> {ethos oberonv4 ominc }
// pfister -> { ominc oberonsystem3 }
// heeb -> ominc
// templ -> { oberon2 objectoberon }
cronosgroup -> { kronos excelsioros excelsior }
excelsior -> xds
excelsioros -> kronos
pascal -> { modula2 oberon };
oberon -> { activeoberon objectoberon oberonsa ceres }
// oberonsystem -> ceres
oberonsystem -> { oberon oberonv1v2 oberonv5 ceres }
activeoberon -> { zonnon }
objectoberon -> { activeoberon oberon2 }
modula2 -> { oberon medos2 xds excelsioros }
medos2 -> lilith
oberonl -> componentpascal
componentpascal -> { blackbox eo }
// blackbox -> portos
lilith -> { kronos ceres }
ceres -> { ethos }
// oberonsystem -> { oberonv1v2 }
oberonv1v2 -> { oberonv4 oberonsystem3 ethos }
oberonsystem3 -> a2
activeoberon -> a2
// eth -> { oberonv1v2, oberonsystem3 ethos lilith }
// oberonsystem -> { oberonv5 oberon }
oberon -> oberonsystem
ethos -> oberonf
oberon2 -> { oberonl xds ethos eo }
ominc -> { oberonf oberonl }
// esmertec -> portos
// portos -> jbed
oberonl -> oberonf
oberonf -> { blackbox oberonl }
oberonsa -> oberon07
oberon07 -> { o7 oberonv5 astrobe eo }
oberonv5 -> { o7 extendedoberon }
oberonv5 -> osFPGA
// shiryaev -> o7
eo -> extendedoberon
{ rank=same oberon oberonsystem ceres cronosgroup }
{ rank=same oberonv4 oberonsystem3 ethos }
{ rank=same oberonl oberonf }
{ rank=same oberon07 a2 blackbox componentpascal }
{ rank=same oberonv5 osFPGA }
{ rank=same o7 eo }
// { rank=same oberonsystem oberon }
// { rank=same o7 astrobe }
}