Porovnání programovacích jazyků s více paradigmaty - Comparison of multi-paradigm programming languages
![]() | tento článek případně obsahuje původní výzkum.Srpna 2009) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Programovací jazyky lze seskupit podle počtu a typů paradigmata podporováno.
Souhrny paradigmatu
Stručný odkaz na paradigmata programování uvedená v tomto článku.
- Souběžné programování - mít jazykové konstrukty pro souběžnost, které mohou zahrnovat multi-threading, podporu distribuovaných výpočtů, předávání zpráv, sdílené prostředky (včetně sdílené paměti), nebo futures
- Programování herců Souběžný výpočet s herci které přijímají místní rozhodnutí v reakci na prostředí (schopné sobeckého nebo soutěžního chování)
- Omezení programování - vztahy mezi proměnnými jsou vyjádřeny jako omezení (nebo sítě omezení), směrování přípustných řešení (využívá uspokojení omezení nebo simplexní algoritmus )
- Programování toku dat - vynucený přepočet vzorců při změně datových hodnot (např. tabulky )
- Deklarativní programování - popisuje, co by výpočet měl provádět, aniž by specifikoval podrobné změny stavu srov. imperativní programování (funkční a logické programování jsou hlavní podskupiny deklarativního programování)
- Distribuované programování - mít podporu pro více autonomních počítačů, které komunikují prostřednictvím počítačových sítí
- Funkcionální programování - používá vyhodnocení matematických funkcí a vyhýbá se stavovým a měnitelným datům
- Generické programování - používá algoritmy napsané z hlediska typů, které mají být specifikovány později, které jsou poté podle potřeby vytvořeny pro konkrétní typy poskytované jako parametry
- Imperativní programování - explicitní příkazy, které mění stav programu
- Logické programování - používá pro programování explicitní matematickou logiku
- Metaprogramování - psaní programů, které zapisují nebo manipulují s jinými programy (nebo se sebou samými) jako svá data, nebo které provádějí část práce v době kompilace, která by se jinak prováděla za běhu
- Metaprogramování šablon - metody metaprogramování, ve kterých šablony používá kompilátor ke generování dočasného zdrojového kódu, který je sloučen kompilátorem se zbytkem zdrojového kódu a poté zkompilován
- Reflexní programování - metody metaprogramování, při nichž se program sám upravuje nebo rozšiřuje
- Objektově orientované programování - používá datové struktury sestávající z datových polí a metod společně s jejich interakcemi (objekty) k navrhování programů
- Na základě třídy - objektově orientované programování, ve kterém je dědičnosti dosaženo definováním tříd objektů oproti objektům samotným
- Prototypové - objektově orientované programování, které se vyhýbá třídám a implementuje dědičnost prostřednictvím klonování instancí
- Programování potrubí - jednoduchá změna syntaxe, která přidá syntaxi k volání funkcí vnoření do jazyka původně navrženého s žádným
- Programování na základě pravidel - síť pravidel, která obsahují znalostní základnu a lze je použít pro expertní systémy a dedukci a řešení problémů
- Vizuální programování - manipulace s prvky programu spíše graficky než jejich textovou specifikací (např. Simulink ); také nazývané schematické programování[1]
Přehled jazyků
Jazyk | Počet paradigmat | Souběžně | Omezení | Tok dat | Deklarativní | Distribuováno | Funkční | Metaprogramování | Obecný | Rozkazovací způsob | Logika | Odraz | Objektově orientovaný | Potrubí | Vizuální | Na základě pravidel | Další paradigmata |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ada[2][3][4][5][6] | 5 | Ano[a 1] | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
ALF | 2 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ne |
AmigaE[Citace je zapotřebí ] | 2 | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
APL | 3 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Pole (vícerozměrné) |
BETA[Citace je zapotřebí ] | 3 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
C ++ | 7 (15) | Ano[7][8][9] | Knihovna[10] | Knihovna[11][12] | Knihovna[13][14] | Knihovna[15][16] | Ano | Ano[17] | Ano[a 3] | Ano | Knihovna[18][19] | Knihovna[20] | Ano[a 2] | Ano[21] | Ne | Knihovna[22] | Pole (vícerozměrné; použití STL ) |
C# | 6 (7) | Ano | Ne | Knihovna[a 4] | Ne | Ne | Ano[a 5] | Ne | Ano | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | reaktivní[a 6] |
ChucK[Citace je zapotřebí ] | 3 | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
Claire | 2 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
Clojure | 5 | Ano[23][24] | Ne | Ne | Ano | Ne | Ano[25] | Ano[26] | Ne | Ne | Knihovna[27] | Ne | Ne | Ano[28] | Editor[29] | Ne | Vícenásobné odeslání,[30] Agenti[31] |
Společný Lisp | 5 | Knihovna[32] | Knihovna[33] | Knihovna[34] | Ano[35] | Knihovna[36] | Ano | Ano | Ano[37] | Ano | Knihovna[38] | Ano | Ano (vícenásobné odeslání, kombinace metod)[39][a 2] | Knihovna[40] | Ne | Knihovna[41] | Vícenásobné odeslání, systém meta-OOP,[42] Jazyk je rozšiřitelný pomocí metaprogramování. |
Kučera | 5 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ano[a 3] | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | Ne |
Kari | 4 | Ano | Ano | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ne |
D (verze 2.0)[43][44] | 6 | Ano[a 7] | Ne | Ne | Ne | Ne | Ano | Ano[45][a 3] | Ano[a 3] | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
Dylan[Citace je zapotřebí ] | 3 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | Ne |
E | 3 | Ano | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
ECMAScript[46][47] (ActionScript, E4X, JavaScript, JScript ) | 4 (5) | částečné (sliby, nativní rozšíření)[a 8] | Ne | Ne | Knihovna[48][49] | Ne | Ano | Ne | Ne | Ano | Ne | Ano | Ano[a 9] | Knihovna[50][51] | Editor[52] | Ne | reaktivní,[a 10][53] událost řízena[a 11][a 12] |
Embarcadero Delphi | 3 | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano[a 3] | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
Erlang | 3 | Ano | Ne | Ne | Ano | Ano | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ne |
Elixír | 4 | Ano | Ne | Ne | Ne | Ano | Ano | Ano | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ne |
Jilm | 6 | Ano | Ne | Ano | Ano | Ne | Ano | Ne | Ano | Ne | Ne | Ne | Ne | Ano | Ne | Ne | reaktivní |
F# | 7 (8) | Ano[a 7] | Ne | Knihovna[a 4] | Ano | Ne | Ano | Ne | Ano | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | reaktivní[a 6] |
Fortran | 4 (5) | Ano | Ne | Ne | Ne | Ne | Ano[a 13] | Ne | Ano[a 14] | Ne | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Pole (vícerozměrný) |
Jít | 4 | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ano | Ne | Ano | Ne | Ne | Ne |
Haskell | 8 (15) | Ano | Knihovna[54] | Knihovna[55] | Ano | Knihovna[56] | Ano (líný ) | Ano[57] | Ano | Ano | Knihovna[58] | Ne | Neměnný | Ano | Ano | Knihovna[59] | gramotné, reaktivní, závislé typy (částečné) |
Io | 4 | Ano[a 7] | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ne | Ne | Ano[a 9] | Ne | Ne | Ne | Ne |
J[Citace je zapotřebí ] | 3 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
Jáva | 6 | Ano | Knihovna[60] | Knihovna[61] | Ne | Ne | Ano | Ne | Ano | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | Ne |
Julie | 9 (17) | Ano | Knihovna[62] | Knihovna[63][64] | Knihovna[65] | Ano | Ano (dychtivý ) | Ano | Ano | Ano | Knihovna[66] | Ano | Ano (vícenásobné odeslání, ne tradiční jednotlivé) | Ano | Ne | Knihovna[67][68] | Vícenásobné odeslání, Pole (vícerozměrný); volitelně líný[69] a reaktivní (s knihovnami) |
Kotlin | 8 | Ano | Ne | Ne | Ne | Ne | Ano | Ano | Ano | Ano | Ne | Ano | Ano | Ano | Ne | Ne | Ne |
LabVIEW | 4 | Ano | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ano | Ne | Ne |
Láva | 2 | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano[a 2] | Ne | Ano | Ne | Ne |
LispWorks (verze 6.0 s podporou symetrického vícenásobného zpracování, pravidla, logika (Prolog), CORBA) | 9 | Ano | Ne | Ne | Ne | Ano | Ano | Ano | Ne | Ano | Ano | Ano | Ano[a 2] | Ne | Ne | Ano | Ne |
Lua[Citace je zapotřebí ] | 3 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ne | Ne | Ano[a 9] | Ne | Ne | Ne | Ne |
MATLAB | 6 (10) | Panel nástrojů[70] | Panel nástrojů[71] | Ano[72] | Ne | Panel nástrojů[73] | Ne | Ano[74] | Ano[75] | Ne | Ne | Ano[76] | Ano[77] | Ne | Ano[78] | Ne | Pole (vícerozměrný) |
Nemerle | 7 | Ano | Ne | Ne | Ne | Ne | Ano | Ano | Ano | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | Ne |
Objekt Pascal | 4 | Ano | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
OCaml | 4 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ano | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
Oz | 11 | Ano | Ano | Ano | Ano | Ano | Ano | Ne | Ne | Ano | Ano | Ne | Ano[a 2] | Ano | Ne | Ano | Ne |
Perl[Citace je zapotřebí ] | 8 (9) | Ano[79] | Knihovna[80] | Ano[81] | Ne | Ne | Ano | Ano | Ne | Ano | Ne | Ano[a 2] | Ano[a 2] | Ano | Ne | Ne | Ne |
PHP[82][83][84] | 4 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | Ne |
Poplog | 3 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ano | Ne | Ne | Ne | Ne | Ne | Ne |
Prograph | 3 | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano[a 2] | Ne | Ano | Ne | Ne |
Krajta | 5 (10) | Knihovna[85][86] | Knihovna[87] | Ne | Ne | Knihovna[88] | Částečný | Ano[89][90] | Ano[91][92] | Ano | Knihovna[93] | Ano | Ano[a 2] | Ne | Editor[94] | Ne | strukturovaný |
R | 4 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano | Ne | Ano | Ano | Ano[95] | Ne | Ne | Pole (vícerozměrné) |
Raketa | 6 | Ano[96] | Ne | Ne | Ne | Ne | Ano | Ano | Ne | Ano | Ano | Ano | Ano | Ne | Ne | Ne | Ne |
Raku | 10 | Ano[97] | Ano[98] | Ano[99] | Ne | Knihovna[100] | Ano | Ano[101] | Ano[102] | Ano | Ne | Ano[103] | Ano[104] | Ano | Ne | Ne | Vícenásobné odeslání, líné seznamy, reaktivní. |
ROOP | 3 | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano | Ano | Ne | Ne | Ne | Ne | Ano | Ne |
Rubín | 5 | Ne | Ne | Ne | Ne | Ne | Ano | Ano | Ne | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | Ne |
Rez (verze 1.0.0-alfa) | 6 | Ano[a 7] | Ne | Ne | Ne | Ne | Ano | Ano[105][106] | Ano[107] | Ano | Ne | Ne | Ano | Ne | Ne | Ne | lineární, affline a typy vlastnictví |
Sather[Citace je zapotřebí ] | 2 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
Scala[108][109] | 9 | Ano[a 7] | Ne | Ano[a 15] | Ano | Ne | Ano | Ano | Ano | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | Ne |
Simula[Citace je zapotřebí ] | 2 | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ano[a 2] | Ne | Ne | Ne | Ne |
SISAL | 3 | Ano | Ne | Ano | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne |
Tabulky | 2 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ne |
Rychlý | 7 | Ano | Ne | Ne | Ne | Ne | Ano | Ano | Ano | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | blokově strukturovaný |
Tcl s rozšířením Snit[Citace je zapotřebí ] | 3 | Ne | Ne | Ne | Ne | Ne | Ano[110] | Ne | Ne | Ano | Ne | Ne | Ano[a 9][111] | Ne | Ne | Ne | Ne |
Visual Basic .NET | 6 (7) | Ano | Ne | Knihovna[a 4] | Ne | Ne | Ano | Ne | Ano | Ano | Ne | Ano | Ano[a 2] | Ne | Ne | Ne | reaktivní[a 6] |
Windows PowerShell | 6 | Ne | Ne | Ne | Ne | Ne | Ano | Ne | Ano | Ano | Ne | Ano | Ano[a 2] | Ano | Ne | Ne | Ne |
Wolfram jazyk & Mathematica | 13[112] (14) | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano[113] | Ne | Ano | Znalostní |
Viz také
- Programovací paradigma
- Kategorický seznam programovacích jazyků
- Programovací jazyk specifický pro doménu
- Multimodeling specifický pro doménu
Poznámky
- ^ místo setkání a podobné monitoru
- ^ A b C d E F G h i j k l m n Ó p q r s t u proti w X y z aa ab ac inzerát ae af ag ah ai Na základě třídy
- ^ A b C d E Metaprogramování šablon
- ^ A b C použitím Tok dat TPL
- ^ pouze lambda podpora (líné funkční programování)
- ^ A b C použitím Reaktivní rozšíření (Rx)
- ^ A b C d E programování herců
- ^ použitím Node.js ' shluk modul nebo child_process.fork metoda, webové pracovníky v prohlížeči atd.
- ^ A b C d Prototypové
- ^ použitím Reaktivní rozšíření (RxJS)
- ^ v Node.js prostřednictvím jejich Události modul
- ^ v prohlížečích přes jejich nativní EventTarget API
- ^ čistě funkční
- ^ parametrizované třídy
- ^ Akka Archivováno 19. 1. 2013 na Wayback Machine
Citace
- ^ Bragg, S.D .; Driskill, C.G. (20. – 22. Září 1994). "Schematicko-grafické programovací jazyky a DoD-STD-2167A". Sborník AUTOTESTCON '94. IEEEXplore. IEEE. 211–220. doi:10.1109 / AUTEST.1994.381508. ISBN 978-0-7803-1910-3.
- ^ Referenční příručka Ada, ISO / IEC 8652: 2005 (E) vyd. 3, Část 9: Úkoly a synchronizace
- ^ Referenční příručka Ada, ISO / IEC 8652: 2005 (E) vyd. 3 Příloha E: Distribuované systémy
- ^ Referenční příručka Ada, ISO / IEC 8652: 2005 (E) vyd. 3, Část 12: Generické jednotky
- ^ Referenční příručka Ada, ISO / IEC 8652: 2005 (E) vyd. 3, Oddíl 6: Podprogramy
- ^ Referenční příručka Ada, ISO / IEC 8652: 2005 (E) vyd. 3, 3.9 Označené typy a rozšíření typů
- ^ Podpora vláken
- ^ Atomová podpora
- ^ Paměťový model
- ^ Gecode
- ^ SystemC
- ^ Boost.Iostreams
- ^ Boolinq
- ^ AraRat
- ^ OpenMPI
- ^ Boost.MPI
- ^ Boost.MPL
- ^ LC ++
- ^ Castor Archivováno 2013-01-25 na Wayback Machine
- ^ Reflect Library
- ^ N3534
- ^ Boost. Duch
- ^ Clojure - souběžné programování
- ^ Clojure - core.async
- ^ Clojure - funkční programování
- ^ Clojure - Makra
- ^ Clojure - core.logic
- ^ Clojure - Thread Macros Guide
- ^ "Světelný stůl". 2019-04-08.
- ^ Multimetody a hierarchie
- ^ Agenti a asynchronní akce
- ^ [1] mnoho paradigmat souběžnosti implementovaných jako rozšíření jazyka
- ^ [2] programování omezení uvnitř CL prostřednictvím rozšíření
- ^ [3] rozšíření toku dat
- ^ [4] vytvořením DSL pomocí zabudovaného metaprogramování; viz také poznámka k funkčním paradigmatům omezení a logiky, která jsou součástí deklarativního
- ^ [5] MPI atd. Prostřednictvím jazykových rozšíření
- ^ metaprogramování šablon pomocí maker (viz C ++)
- ^ [6] [7] [8] Prolog implementován jako rozšíření jazyka
- ^ Společný systém objektů Lisp viz článek Wikipedie o CLOS, společném objektovém systému Lisp.
- ^ implementováno uživatelem pomocí krátkého makra, příklad implementace: [9]
- ^ [10] rozšíření programování založené na pravidlech
- ^ [11] prostřednictvím protokolu Meta Object Protocol
- ^ Tabulka funkcí jazyka D.
- ^ Phobos std. Algoritmus
- ^ Řetězcové mixiny v jazyce D.
- ^ Malý JavaScripter demonstruje základní shodnost se Scheme, funkčním jazykem.
- ^ Objektově orientované programování v JavaScriptu Archivováno 10. 2. 2019 na Wayback Machine poskytuje přehled technik objektově orientovaného programování v JavaScriptu.
- ^ „Reagovat - knihovna JavaScript pro vytváření uživatelských rozhraní“. 2019-04-08.
- ^ "Háčky TNG". 2019-04-08.
- ^ „Dokumentace Lodash“. 2019-04-08.
- ^ "mori". 2019-04-08.
- ^ "Light Table". 2019-04-08.
- ^ "Háčky TNG". 2019-04-08.
- ^ Vkládání Prologu
- ^ "Funkční reaktivní programování - HaskellWiki".
- ^ Cloud Haskell
- ^ „Template Haskell - HaskellWiki“.
- ^ „Logict: Backtracking logic-programming monad“.
- ^ [12]
- ^ https://jcp.org/en/jsr/detail?id=331 JSR 331: Constraint Programming API
- ^ https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google Cloud Platform Dataflow SDK
- ^ „JuliaOpt / JuMP.jl“. GitHub. JuliaOpt. 11. února 2020. Citováno 12. února 2020.
- ^ „GitHub - MikeInnes / DataFlow.jl“. 2019-01-15.
- ^ „GitHub - JuliaGizmos / Reactive.jl: Reaktivní programovací primitiva pro Julii“. 2018-12-28.
- ^ https://github.com/davidanthoff/Query.jl Dotaz na téměř cokoli v Julii
- ^ https://github.com/lilinjn/LilKanren.jl Sbírka implementací Kanren v Julii
- ^ „GitHub - abeschneider / PEGParser.jl: PEG Parser pro Julii“. 2018-12-03.
- ^ „GitHub - gitfoxi / Parsimonious.jl: Generátor analyzátoru PEG pro Julii“. 2017-08-03.
- ^ Líný https://github.com/MikeInnes/Lazy.jl
- ^ "Provádět iterace smyčky paralelně". mathworks.com. Citováno 21. října 2016.
- ^ „Napište omezení“. mathworks.com. Citováno 21. října 2016.
- ^ „Začínáme se SimEvents“. mathworks.com. Citováno 21. října 2016.
- ^ "Provádět iterace smyčky paralelně". mathworks.com. Citováno 21. října 2016.
- ^ "Execute MATLAB expression in text - MATLAB eval". mathworks.com. Citováno 21. října 2016.
- ^ "Určit třídu objektu". mathworks.com. Citováno 21. října 2016.
- ^ „Metadata třídy“. mathworks.com. Citováno 21. října 2016.
- ^ "Objektově orientované programování". mathworks.com. Citováno 21. října 2016.
- ^ "Simulink". mathworks.com. Citováno 21. října 2016.
- ^ vlákna založená na tlumočníkovi
- ^ Los
- ^ Vyšší objednávka Perl
- ^ Manuál PHP, Kapitola 17. Funkce
- ^ Manuál PHP, Kapitola 19. Třídy a objekty (PHP 5)
- ^ Manuál PHP, Anonymní funkce
- ^ „Parallel Processing and Multiprocessing in Python“. wiki.python.org. Citováno 21. října 2016.
- ^ "threading - rozhraní threading na vyšší úrovni". docs.python.org. Citováno 21. října 2016.
- ^ "python-constraint". pypi.python.org. Citováno 21. října 2016.
- ^ „Distribuované programování“. wiki.python.org. Citováno 21. října 2016.
- ^ "Kapitola 9. Metaprogramování". chimera.labs.oreilly.com. Archivovány od originál dne 23. října 2016. Citováno 22. října 2016.
- ^ „Metaprogramování“. readthedocs.io. Citováno 22. října 2016.
- ^ „PEP 443 - Generické funkce s jedním odesláním“. python.org. Citováno 22. října 2016.
- ^ „PEP 484 - Tipy pro psaní“. python.org. Citováno 22. října 2016.
- ^ "PyDatalog". Citováno 22. října 2016.
- ^ "Světelný stůl". 2019-04-08.
- ^ „Magrittr: operátor předního potrubí pro R“. cran.r-project.org accessdate = 13. července 2017.
- ^ Průvodce raketami: Souběžnost a synchronizace
- ^ Kanály a další mechanismy
- ^ "Podpis třídy".
- ^ Provozovatel krmiva
- ^ https://github.com/perl6/doc/issues/1744#issuecomment-360565196 Cro modul
- ^ „Meta-programování: Co, proč a jak“. 2011-12-14.
- ^ https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ Parametrizované role
- ^ „Meta-object protocol (MOP)“.
- ^ https://docs.perl6.org/language/classtut Třídy a role
- ^ "Průvodce makry Rust". Rez. Citováno 19. ledna 2015.
- ^ "Průvodce zásuvnými moduly kompilátoru Rust". Rez. Citováno 19. ledna 2015.
- ^ Rust Reference § 6.1.3.1
- ^ Přehled programovacího jazyka Scala
- ^ Specifikace jazyka Scala
- ^ "Tcl Programování / Úvod". en.wikibooks.org. Citováno 22. října 2016.
- ^ "TCLLIB - Tcl Standard Library: snitfaq". sourceforge.net. Citováno 22. října 2016.
- ^ Poznámky pro odborníky na programovací jazyky „Jazyková dokumentace Wolfram.
- ^ Externí programy „Jazyková dokumentace Wolfram.
Reference
- Jim Coplien, Multiparadigmový design pro C ++, Addison-Wesley Professional, 1998.