Oberon/oberongenealogy.gv

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