Bestand:Algol&Fortran Family By Skippppp.svg
Pagina-inhoud wordt niet ondersteund in andere talen.
Uiterlijk
Uit Wikipedia, de vrije encyclopedie
Afmetingen van deze voorvertoning van het type PNG van dit SVG-bestand: 557 × 600 pixels Andere resoluties: 223 × 240 pixels | 446 × 480 pixels | 713 × 768 pixels | 951 × 1.024 pixels | 1.901 × 2.048 pixels | 688 × 741 pixels.
Oorspronkelijk bestand (SVG-bestand, nominaal 688 × 741 pixels, bestandsgrootte: 80 kB)
Dit is een bestand van Wikimedia Commons. Onderstaande beschrijving komt van de beschrijving van het bestand daar. |
Beschrijving
BeschrijvingAlgol&Fortran Family By Skippppp.svg |
English: A timeline and family tree of the Algol, Fortran, and COBOL programming language families. |
Datum | |
Bron | Shazz, Borkowsk, User:Qwertyus |
Auteur | Skippppp,Shazz,Borkowsk, User:Qwertyus |
Andere versies | https://commons.wikimedia.org/w/index.php?title=File:Algol%26Fortran_family-by-Borkowski.svg |
Tikz source code
% Note: Run processed DVI file with dvisvgm and option --no-fonts, or short -n
\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\usepackage{xcolor}
\colorlet{bg1}{blue!10}
\begin{document}
\begin{tikzpicture}[scale=0.35, thick]
% Used to rescale the later decades.
\ExplSyntaxOn
\long\def\y#1#2{
\str_case_e:nnF {#1#2} {
{00} {100}
{02} {101}
{03} {101}
{08} {104}
{10} {105}
{11} {106}
{12} {107}
}{#1#2}
}
% Fancy tikz to find the midpoint of 2 anchors.
\long\def\findmid#1#2#3{
($(#2)!#1!(#3)$)
}
\ExplSyntaxOff
% Background colours
\fill[bg1] (-27, \y51) rectangle (25, \y60);
\fill[white] (-27, \y60) rectangle (25, \y70);
\fill[bg1] (-27, \y70) rectangle (25, \y80);
\fill[white] (-27, \y80) rectangle (25, \y90);
\fill[bg1] (-27, \y90) rectangle (25, \y00);
\fill[white] (-27, \y00) rectangle (25, \y10);
\fill[bg1] (-27, \y10) rectangle (25, \y12);
% Dates
\node[anchor=south west, opacity=0.5] at (-27, \y51) {\large 1950's};
\foreach \date in {60, 70, ..., 90} {
\node[anchor=south west, opacity=0.5] at (-27, \expandafter\y\date) {\large 19\date's};
}
\node[anchor=south west, opacity=0.5] at (-27, \y00) {\large 2000's};
\node[anchor=south west, opacity=0.5] at (-27, \y10) {\large 2010's};
% Nodes with linebreaks should have center alignment
\tikzset{every path/.append style={align=center}}
% All the nodes.
% I have tried to make it somewhat organised, but it's still a mess.
\node (speedcoding) at (-10, \y53) {Speedcoding (1953)};
\node (fortran 1) at (-10, \y55) {Fortran (1955)};
\node (flowmatic) at ( 20, \y55) {\textsc{flow-matic}\\(1955)};
\node (algol 58) at ( 00, \y58) {Algol (1958)};
\node (cobol 60) at ( 20, \y60) {\textsc{cobol}\\(1960)};
\node (fortran 2) at (-15, \y58) {Fortran II};
\node (algol 60) at ( 00, \y60) {Algol 60};
\node (simula 62) at ( 10, \y62) {Simula\\(1962)};
\node (cpl) at ( 05, \y63) {\textsc{cpl}\\(1963)};
\node (basic) at (-20, \y64) {\textsc{basic}\\(1964)};
\node (fortran 4) at (-15, \y66) {Fortran IV\\(1966)};
\node (bcpl) at ( 05, \y66) {\textsc{bcpl}\\(1966)};
\node (simula 67) at ( 10, \y67) {Simula 67};
\node (algol 68) at ( 00, \y68) {Algol 68};
\node (pascal) at (-05, \y70) {Pascal\\(1970)};
\node (smalltalk) at ( 15, \y72) {Smalltalk\\(1972)};
\node (c72) at ( 05, \y72) {C\\(1972)};
\node (fortran 77) at (-15, \y77) {Fortran 77};
\node (modula 2) at (-10, \y78) {Modula-2\\(1978)};
\node (modula 3) at (-10, \y88) {Modula-3\\(1988)};
\node (ada 83) at ( 00, \y83) {Ada\\(1983)};
\node (cpp83) at ( 10, \y83) {C++\\(1983)};
\node (cobol 85) at ( 20, \y95) {\textsc{cobol} 85};
\node (c89) at ( 05, \y89) {C 89};
\node (fortran 90) at (-15, \y90) {Fortran 90};
\node (vba) at (-20, \y91) {Visual Basic\\(1991)};
\node (fortran 95) at (-15, \y95) {Fortran 95};
\node (ada 95) at ( 00, \y95) {Ada 95};
\node (delphi) at (-05, \y95) {Delphi\\(1995)};
\node (cpp98) at ( 10, \y98) {C++98};
\node (c99) at ( 05, \y99) {C 99};
\node (cobol 02) at ( 20, \y02) {\textsc{cobol} 2002};
\node (fortran 03) at (-15, \y03) {Fortran 03};
\node (fortran 08) at (-15, \y08) {Fortran 08};
\node (c11) at ( 05, \y11) {C 11};
\node (cpp11) at ( 10, \y11) {C++ 11};
% Add 0.5 because there is no good way to route connections otherwise
\node (pl 1) at (-10, \y64+0.5) {\textsc{pl/i} (1964)};
% All the connections should have rounded corners.
\tikzset{every path/.append style={rounded corners}}
% The PL/I mess
\draw (fortran 2) -| \findmid{0.2}{pl 1.south}{pl 1.south west};
\draw (algol 58) -| \findmid{0.2}{pl 1.south}{pl 1.south east};
\draw (cobol 60) |- (10.4, \y64+0.5)
( 9.6, \y64+0.5) -- ( 5.4, \y64+0.5)
( 4.6, \y64+0.5) -- ( 0.4, \y64+0.5)
(-0.4, \y64+0.5) -- (-4.6, \y64+0.5)
(-5.4, \y64+0.5) -- (pl 1.east);
% The obvious tree branches
\draw (speedcoding)
-- (fortran 1)
-| (fortran 2)
-- (fortran 4)
-- (fortran 77)
-- (fortran 90)
-- (fortran 95)
-- (fortran 03)
-- (fortran 08);
\draw (fortran 1)
-| (algol 58)
-- (algol 60)
-| (cpl)
-- (bcpl)
-- (c72)
-- (c89)
-- (c99)
-- (c11);
\draw (algol 60)
-| (simula 62)
-- (simula 67)
-- (cpp83)
-- (cpp98)
-- (cpp11);
\draw (fortran 2)
-| (basic)
-- (vba);
\draw (algol 60)
-| (pascal)
-| (modula 2)
-- (modula 3);
\draw (algol 60)
-| (algol 68)
-- (ada 83)
-- (ada 95);
\draw (flowmatic)
-- (cobol 60)
-- (cobol 85)
-- (cobol 02);
\draw (pascal) -- (delphi);
\draw (simula 67) -| (smalltalk);
% Random cross-connections.
\draw (c72) -| \findmid{0.5}{c72}{cpp83} |- (cpp83);
\draw (c89) -| \findmid{0.5}{c89}{cpp98} |- (cpp98);
\draw (c99) -| \findmid{0.5}{c99}{cpp11} |- (cpp11);
\draw (algol 68) -| \findmid{0.5}{algol 68}{c72} |- (c72);
\draw (cpp98) |- (cobol 02);
\draw (smalltalk) |- (cobol 02);
\end{tikzpicture}
\end{document}
Licentie
Ik, de auteursrechthebbende van dit werk, maak het hierbij onder de volgende licentie beschikbaar:
Dit bestand is gelicenseerd onder de Creative Commons Naamsvermelding-GelijkDelen 4.0 Internationaal licentie.
- De gebruiker mag:
- Delen – het werk kopiëren, verspreiden en doorgeven
- Remixen – afgeleide werken maken
- Onder de volgende voorwaarden:
- naamsvermelding – U moet op een gepaste manier aan naamsvermelding doen, een link naar de licentie geven, en aangeven of er wijzigingen in het werk zijn aangebracht. U mag dit op elke redelijke manier doen, maar niet zodanig dat de indruk wordt gewekt dat de licentiegever instemt met uw werk of uw gebruik van zijn werk.
- Gelijk delen – Als u het werk heeft geremixt, veranderd, of erop heeft voortgebouwd, moet u het gewijzigde materiaal verspreiden onder dezelfde licentie als het oorspronkelijke werk, of een daarmee compatibele licentie.
6 mrt 2024
image/svg+xml
Bestandsgeschiedenis
Klik op een datum/tijd om het bestand te zien zoals het destijds was.
Datum/tijd | Miniatuur | Afmetingen | Gebruiker | Opmerking | |
---|---|---|---|---|---|
huidige versie | 10 mei 2024 04:05 | 688 × 741 (80 kB) | Speravir | update after typo fix by User:ReadOnlyAccount in edit 872821271]] | |
6 mrt 2024 23:50 | 645 × 695 (80 kB) | Skippppp | Uploaded own work with UploadWizard |
Bestandsgebruik
Geen enkele pagina gebruikt dit bestand.
Globaal bestandsgebruik
De volgende andere wiki's gebruiken dit bestand:
- Gebruikt op en.wikipedia.org