Lista języków programowania według typu
Listy języków programowania |
---|
To jest lista znanych języków programowania , pogrupowanych według typu.
Nie ma nadrzędnego schematu klasyfikacji języków programowania. Dlatego w wielu przypadkach język jest wymieniony pod wieloma nagłówkami (w tym zakresie patrz „ Języki wieloparadygmatyczne ” poniżej).
Języki tablicowe
programowania tablicowego (nazywane również wektorami lub wielowymiarowymi ) uogólniają operacje na skalarach, aby zastosować je w sposób przezroczysty do wektorów , macierzy i tablic wielowymiarowych .
języki montażowe
Języki asemblera bezpośrednio odpowiadają językowi maszynowemu (patrz poniżej ), więc instrukcje kodu maszynowego pojawiają się w formie zrozumiałej dla ludzi, chociaż może nie istnieć odwzorowanie jeden do jednego między pojedynczą instrukcją a indywidualną instrukcją. Języki asemblera pozwalają programistom używać adresów symbolicznych, które asembler konwertuje na adresy bezwzględne lub relokowalne . Większość asemblerów obsługuje również makra i stałe symboliczne .
Języki autorskie
Język autorski to język programowania przeznaczony do użytku przez osoby niebędące ekspertami komputerowymi w celu łatwego tworzenia samouczków, stron internetowych i innych interaktywnych programów komputerowych.
Konkatenatywne języki programowania
Konkatenatywny język programowania to bezpunktowy język programowania komputerowego , w którym wszystkie wyrażenia oznaczają funkcje , a zestawienie wyrażeń oznacza złożenie funkcji . Programowanie konkatenacyjne zastępuje aplikację funkcji , która jest powszechna w innych stylach programowania, z kompozycją funkcji jako domyślnym sposobem budowania podprogramów .
- Czynnik
- Naprzód
- jq (obsługiwana jest również aplikacja funkcji)
- Radość
- Kotek
- Lwów
- Postscriptum
- r3
- Staapl
- Trit
- xs
- 8
Języki programowania z ograniczeniami
Język programowania z ograniczeniami to deklaratywny język programowania , w którym relacje między zmiennymi są wyrażane jako ograniczenia . Wykonywanie przebiega poprzez próbę znalezienia wartości dla zmiennych, które spełniają wszystkie zadeklarowane ograniczenia.
Języki interfejsu wiersza poleceń
interfejsu wiersza poleceń (CLI) są również nazywane językami wsadowymi lub językami sterowania zadaniami. Przykłady:
- 4DOS (rozszerzona powłoka wiersza poleceń dla komputerów IBM PC )
- 4OS2 (rozszerzona powłoka wiersza poleceń dla komputerów IBM PC )
- bash (powłoka Bourne-Again z GNU , Free Software Foundation (FSF))
- CLIST ( lista poleceń MVS )
- WYKONAWCA CMS
- csh i tcsh (powłoka podobna do C od Billa Joya z UC Berkeley )
- DIGITAL Command Language (DCL) – standardowy język CLI dla VMS ( DEC , Compaq , HP )
- Język wsadowy DOS (standardowy język CLI/wsadowy dla komputerów IBM PC z systemami operacyjnymi DOS , popularny przed Windows )
- WYKONANIE 2
- Expect ( uniksowe narzędzie do automatyzacji i testowania)
- fish ( powłoka Uniksa )
- Powłoka Hamilton C (powłoka C dla systemu Windows)
- ksh (standardowa powłoka systemu Unix , napisana przez Davida Korna )
- PowerShell ( interfejs wiersza polecenia oparty na platformie .NET )
- Rc (powłoka wiersza poleceń dla planu 9 )
- Rexx
- sh (standardowa powłoka systemu Unix , napisana przez Stephena R. Bourne'a )
- TACL (Tandem Advanced Command Language)
- Język wsadowy systemu Windows (język pliku wsadowego systemu Windows w rozumieniu COMMAND.COM i CMD.EXE )
- zsh ( powłoka systemu Unix )
Języki skompilowane
Są to języki zwykle przetwarzane przez kompilatory , chociaż teoretycznie każdy język może być kompilowany lub interpretowany.
- ActionScript
- Ada (język uniwersalny)
- ALGOL 58
-
ALGOL 60 (bardzo wpływowy projekt językowy)
- SMALL Machine ALGOL Like Language
- Ballerina (do kodu bajtowego dla środowiska wykonawczego (BVM))
- BASIC (w tym pierwsza wersja Dartmouth BASIC)
- BCPL
- C (jeden z najczęściej używanych języków proceduralnych)
- C++ (język wieloparadygmatyczny wywodzący się z C)
- C# (do CIL , generuje środowisko wykonawcze)
- Cejlon (do kodu bajtowego JVM )
- CHŁOD
- CLIPPER 5.3 (dla oprogramowania opartego na systemie DOS)
- CLEO dla komputerów Leo
- Clojure (do kodu bajtowego JVM )
- COBOL
- Kobra
- pospolity LISP
- Kryształ
- Kędzior
- D (z reengineeringu C++)
- DASL do Java, JavaScript, JSP, Flex jako plik .war
- Delphi ( system programistyczny Object Pascal firmy Borland )
- DIBOL (cyfrowy interaktywny język zorientowany na biznes)
- Dylana
- eC
- Eiffel (opracowany przez Bertranda Meyera )
- Wiąz
- Emacs Lisp
- Szmaragd
- Erlang
- F# (do CIL , generuje środowisko uruchomieniowe)
- Czynnik
- Fortran (po raz pierwszy skompilowany przez Johna Backusa z IBM )
- GAUS
- dżin
- Idź (Golang)
- Gosu (do kodu bajtowego JVM )
- Groovy (do kodu bajtowego JVM )
- Haskella
- Port
- Święty C
- Inform (zwykle pliki fabularne dla Glulx lub Z-code )
- Java (zwykle kod bajtowy JVM ; do kodu maszynowego )
- JOWIALNY
- Julia (w locie do kodu maszynowego)
- Kotlin (Kotlin/Native używa LLVM do tworzenia plików binarnych)
- LabVIEW
- Rtęć
- Meza
- Nemerle (na kod bajtowy języka pośredniego)
- Nim
- Cel C
- P
- Pascal (większość implementacji)
- PL/I (pierwotnie dla komputerów mainframe IBM)
- Plus
- Python (do kodu bajtowego pośredniej maszyny wirtualnej )
- RPG (generator programów raportów)
- Rdza
- Scala (do kodu bajtowego JVM )
- Schemat (np. Gambit)
- SekwencjaL – czysto funkcjonalna, równoległa i wolna od wyścigu
- Simula (pierwszy język obiektowy, nadzbiór ALGOL 60 )
- Kod bajtowy niezależny od platformy Smalltalk dla maszyny wirtualnej
- Szybki
-
ML
- Standardowa (SML).
- OCaml
- Turinga
- Vala (system typu GObject)
- Visual Basic (użyj Common Intermediate Language (CIL) JIT do natywnego środowiska uruchomieniowego)
- Visual FoxPro
- Prolog wizualny
- Xojo
Języki współbieżne
przekazywania komunikatów zapewniają konstrukcje językowe dla współbieżności . Dominującym paradygmatem współbieżności w głównych językach, takich jak Java , jest współbieżność pamięci współdzielonej . Języki współbieżne, które wykorzystują przekazywanie wiadomości, były generalnie inspirowane rachunkami procesowymi, takimi jak komunikowanie procesów sekwencyjnych (CSP) lub rachunek π .
- Ada – język uniwersalny
- Alef - język współbieżny z wątkami i przekazywaniem komunikatów, używany do programowania systemów we wczesnych wersjach Plan 9 firmy Bell Labs
- Ateji PX – rozszerzenie języka Java o równoległość
- Ballerina – język przeznaczony do wdrażania i orkiestracji mikroserwisów. Zapewnia model współbieżności oparty na komunikatach.
- ChucK – specyficzny dla domeny język programowania audio, precyzyjna kontrola nad współbieżnością i taktowaniem
- Cilk – równoczesny C
- Cω – C Omega, język badawczy będący rozszerzeniem języka C#, wykorzystuje komunikację asynchroniczną
- Clojure – dialekt Lispa dla wirtualnej maszyny Javy
- Kaplica
- Wspólna tablica Fortran
- Współbieżny Pascal (autor: Brinch-Hansen)
- Curry
- E – wykorzystuje obietnice, zapewnia, że nie dochodzi do zakleszczeń
- Eiffel (poprzez mechanizm SCOOP , Simple Concurrent Object-Oriented Computation)
- Elixir (działa na maszynie wirtualnej Erlang)
- Emerald – wykorzystuje wątki i monitory
- Erlang – wykorzystuje asynchroniczne przekazywanie wiadomości bez udostępniania
- Gambit Scheme – korzystanie z biblioteki Termite
- Idź (Golang)
- Haskell — obsługuje programowanie współbieżne, rozproszone i równoległe na wielu maszynach
- Jawa
- Julia
- Joule – język przepływu danych, komunikuje się poprzez przekazywanie wiadomości
- LabVIEW
- Limbo – spokrewniony z Alefem , używany do programowania systemów w Inferno (system operacyjny)
- MultiLisp — wariant schematu rozszerzony o obsługę równoległości
- OCaml
-
occam – pod silnym wpływem Communicating Sequential Processes (CSP)
- occam-π – współczesna odmiana occam , która zawiera idee z rachunku π Milnera
- Ork
- Oz - język wieloparadygmatyczny, obsługuje współbieżność współdzielonego stanu i przekazywania komunikatów oraz kontrakty terminowe, a także wieloplatformowy system programowania Mozart Oz
- P
- Pict - zasadniczo wykonywalna implementacja rachunku π Milnera
- Python — wykorzystuje równoległość opartą na wątkach i równoległość opartą na procesach
- Rdza
- Scala – implementuje aktorów w stylu Erlanga na JVM
- SequenceL – czysto funkcjonalny, automatycznie równoległy i wolny od wyścigu
- SR – język badań
- Ujednolicony równoległy C
- XProc – język przetwarzania XML, umożliwiający współbieżność
Języki z nawiasami klamrowymi
z nawiasami klamrowymi lub nawiasami klamrowymi mają składnię, która definiuje bloki instrukcji przy użyciu nawiasów klamrowych lub znaków nawiasów klamrowych {
i }
. Ta składnia pochodzi z BCPL (1966) i została spopularyzowana przez C . Wiele języków z nawiasami klamrowymi wywodzi się z C lub jest pod silnym wpływem C. Przykłady języków z nawiasami klamrowymi obejmują:
- ABCL/c+
- Alef
- AWK
- B
- pne
- BCPL
- Balerina
- C - opracowany około 1970 roku w Bell Labs
- C++
- C#
- Cejlon
- ChucK – język programowania dźwięku
- Cilk - współbieżne C do wielowątkowego programowania równoległego
- Cyclone – bezpieczniejsza odmiana C
- D
- Strzałka
- DASL – oparty na Javie
- mi
- eC
- ECMAScript
- GLSL
- Idź (Golang)
- HLSL
- ICI
- Jawa
- Otchłań
- LPC
- MEL
- Nemerle (opcjonalnie nawiasy klamrowe)
- Cel C
- PCASTL
- Perl
- PHP
- Pico
- Szczupak
- PowerShell
- R
- Rdza
- Gwara
- Scala (opcjonalnie nawiasy klamrowe)
- sed
- Solidność
- Superzderzak
- Szybki
- UnrealScript
- Yorick
- TAK
Języki przepływu danych
programowania przepływu danych opierają się na (zwykle wizualnej) reprezentacji przepływu danych w celu określenia programu. Często używany do reagowania na zdarzenia dyskretne lub do przetwarzania strumieni danych. Przykłady języków przepływu danych obejmują:
Języki zorientowane na dane
Języki zorientowane na dane zapewniają potężne sposoby wyszukiwania i manipulowania relacjami, które zostały opisane jako tabele relacji encji, które odwzorowują jeden zestaw rzeczy na inne zestawy. [ potrzebne źródło ] Przykłady języków zorientowanych na dane obejmują:
- Ostry
- Kliper
- dBase język dostępu do relacyjnej bazy danych
- Zły duch
- Mathematica ( język Wolframa )
- ŚWINKA (standardowy język ogólnego przeznaczenia ANSI ze specjalizacjami do pracy z bazami danych)
- Caché ObjectScript (zastrzeżony nadzbiór świnki)
- RDQL
- SPARQL
- SQL
- Visual FoxPro – natywny silnik RDBMS, zorientowany obiektowo, RAD
- WebDNA
Języki tabeli decyzyjnej
Tabele decyzyjne mogą być używane jako pomoc w wyjaśnieniu logiki przed napisaniem programu w dowolnym języku, ale w latach sześćdziesiątych XX wieku opracowano wiele języków, w których główna logika jest wyrażona bezpośrednio w formie tabeli decyzyjnej, w tym:
Języki deklaratywne
Języki deklaratywne wyrażają logikę obliczeń bez szczegółowego opisywania przepływu sterowania. Programowanie deklaratywne kontrastuje z programowaniem imperatywnym za pomocą imperatywnych języków programowania, w których przepływ sterowania jest określony przez rozkazy szeregowe (imperatywy). (Czyste) funkcjonalne i oparte na logice języki programowania są również deklaratywne i stanowią główne podkategorie kategorii deklaratywnej. W tej sekcji wymieniono dodatkowe przykłady, których nie ma w tych podkategoriach.
- Analytica
- Ant (połączenie programowania deklaratywnego i programowania imperatywnego )
- Curry
- Szyfrować
- Dziennik danych
- Distributed Application Specification Language (DASL) (połączenie programowania deklaratywnego i programowania imperatywnego )
- ECL
- Zły duch
- Informuj (łącz programowanie deklaratywne i programowanie imperatywne )
- Połysk
- Mathematica ( język Wolframa )
- Rtęć
- MetaPost
- modelka
- Prolog
- QML
- Oz
- RDQL
- SequenceL – czysto funkcjonalny, automatycznie równoległy i wolny od wyścigu
- SPARQL
- SQL (tylko DQL, bez DDL, DCL i DML)
- Suflet
- xBase
- Transformacje XSL
Języki do osadzenia
W kodzie źródłowym
Języki, które można osadzić w kodzie źródłowym, osadzają małe fragmenty kodu wykonywalnego w fragmencie dowolnego tekstu, często strony internetowej.
Języki osadzone po stronie klienta są ograniczone przez możliwości przeglądarki lub zamierzonego klienta. Ich celem jest zapewnienie dynamizmu stronom internetowym bez konieczności ponownego kontaktowania się z serwerem.
Języki osadzone po stronie serwera są znacznie bardziej elastyczne, ponieważ prawie każdy język może być wbudowany w serwer. Celem osadzania fragmentów kodu po stronie serwera na stronie internetowej jest dynamiczne generowanie dodatkowych znaczników; sam kod znika, gdy strona jest wyświetlana, i zostaje zastąpiony przez jego dane wyjściowe.
Po stronie serwera
- PHP
- VBScript
- SMX – dedykowany do stron internetowych
- Tcl – po stronie serwera w NaviServer i niezbędny komponent w systemach przemysłu elektronicznego
- WebDNA – dedykowany serwisom bazodanowym
Powyższe przykłady są specjalnie dedykowane temu celowi. Wiele innych języków, takich jak Erlang , Scala , Perl , Ring i Ruby , można zaadaptować (na przykład poprzez przekształcenie ich w moduły Apache ).
Strona klienta
- ActionScript
- JavaScript (inaczej ECMAScript lub JScript)
- VBScript (tylko Windows)
W kodzie wynikowym
Szeroka gama języków dynamicznych lub skryptowych może być osadzona w skompilowanym kodzie wykonywalnym. Zasadniczo kod obiektowy tłumacza języka musi być połączony z plikiem wykonywalnym. Fragmenty kodu źródłowego dla języka osadzonego można następnie przekazać do funkcji ewaluacyjnej jako ciągi znaków. Języki kontroli aplikacji można zaimplementować w ten sposób, jeśli kod źródłowy zostanie wprowadzony przez użytkownika. Preferowane są języki z małymi tłumaczami.
Edukacyjne języki programowania
Języki opracowane głównie w celu nauczania i uczenia się programowania.
Języki ezoteryczne
Ezoteryczny język programowania to język programowania zaprojektowany jako test granic projektowania języków programowania komputerów, jako dowód koncepcji lub jako żart.
- Beatnik
- Befunge
- Pojebany mózg
- Szef kuchni
- INTERKAL
- KOD LOL
- Malbolge
- Piet
- Gwiazda rocka
- Szekspir
- czw
- Biała przestrzeń
Języki rozszerzeń
Języki programowania rozszerzeń to języki osadzone w innym programie i używane do wykorzystania jego funkcji w skryptach rozszerzeń.
- AutoLISP (specyficzny dla programu AutoCAD )
- Skorupa Fasoli
- KAL
- C/AL (C/STRONA)
- Podstęp
- Emacs Lisp
- JavaScript i niektóre dialekty, np. JScript
- Lua (osadzone w wielu grach)
- OpenCL (rozszerzenie C i C++ do wykorzystania GPU i równoległych rozszerzeń CPU)
- OptimJ (rozszerzenie Javy z obsługą języków do pisania modeli optymalizacyjnych i potężnych abstrakcji do masowego przetwarzania danych)
- Perl
- Szczupak
- PowerShell
- Python (osadzone w Maya, Blenderze i innych pakietach animacji 3-D)
- Rexx
- Pierścień
- Ruby (Google SketchUp)
- Gwara
- SQL
- Wiewiórka
- Tcl
- Skrypt Vima (vim)
- Visual Basic dla aplikacji (VBA)
Języki czwartej generacji
Języki programowania czwartej generacji to języki wysokiego poziomu zbudowane wokół systemów baz danych. Są one zwykle używane w środowiskach komercyjnych.
- 1C: język programowania dla przedsiębiorstw
- ABAP
- CorVision
- GraphTalk firmy CSC
- CA-IDEAL (Interactive Development Environment for an Application Life) do użytku z CA-DATACOM/DB
- Generator raportów Easytrieve (obecnie CA-Easytrieve Plus)
- CENTRUM
- IBM Informix-4GL
- LINC4GL
- MAPPER ( Unisys/Sperry ) – obecnie część BIS
- MARK-IV ( Sterling / Informatyka ) teraz VISION: BUILDER z CA
- NATURALNY
- Postęp 4GL
- Fala fotowoltaiczna
- LiveCode (nie oparty na bazie danych; nadal celem jest praca na wyższym poziomie abstrakcji niż 3GL).
- SAS
- SQL
- Ubercode (VHLL lub język bardzo wysokiego poziomu)
- Uniface
- Wizualny DataFlex
- Visual FoxPro
- xBase
Języki funkcyjne
Funkcjonalne języki programowania definiują programy i podprogramy jako funkcje matematyczne i traktują je jako pierwszorzędne. Wiele tak zwanych języków funkcjonalnych jest „nieczystych” i zawiera cechy imperatywne. Wiele języków funkcjonalnych jest powiązanych z matematycznymi narzędziami obliczeniowymi. Języki funkcjonalne obejmują:
Czysty
Zanieczyszczony
- APL
- SZR
- KAL
- C++ (od C++11 )
- C#
- VB.NET
- Cejlon
- D
- Strzałka
- Kędzior
- ECMAScript
- Erlang
- F#
- Fexl
- Flix
- G (używany w LabVIEW)
- Groovy
- Chmiel
- J
- Java (od wersji 8)
- Julia
- Kotlin
- Seplenienie
- Mathematica ( język Wolframa )
-
ML
- Standardowa (SML).
- OCaml
- Nemerle
- Nim
- Opal
- OPS5
- Perl
- PHP
- Pyton
- Q (język programowania równań)
- Q (język programowania firmy Kx Systems)
- R
- Raku
- REBOL
- Czerwony
- Pierścień
- Rubin
- REFAŁ
- Rdza
- Scala
- Szybki
- Arkusze kalkulacyjne
- Tcl
Języki opisu sprzętu
W elektronice język opisu sprzętu (HDL) to wyspecjalizowany język komputerowy używany do opisywania struktury, projektu i działania obwodów elektronicznych, a najczęściej cyfrowych obwodów logicznych. Dwie najszerzej stosowane i najlepiej wspierane odmiany HDL stosowane w przemyśle to Verilog i VHDL . Języki opisu sprzętu obejmują:
HDL do projektowania obwodów analogowych
- Verilog-AMS (Verilog dla sygnału analogowego i mieszanego)
- VHDL-AMS (VHDL z rozszerzeniem sygnału analogowego/miksowanego)
HDL do projektowania obwodów cyfrowych
Języki imperatywne
Imperatywne języki programowania mogą być wieloparadygmatowe i występować w innych klasyfikacjach. Oto lista języków programowania zgodnych z imperatywnym paradygmatem :
- Ada
- ALGOL 58
- ALGOL 60 (bardzo wpływowy projekt językowy)
- PODSTAWOWY
- C
- C++
- C#
- Cejlon
- CHŁOD
- COBOL
- D
- Strzałka
- ECMAScript
- FORTRAN
- GAUS
- Iść
- Groovy
- Jawa
- Julia
- Lua
- Mathematica ( język Wolframa )
- MATLAB
- Języki maszynowe
- Moduł-2 , Moduł-3
- ŚWINKA
- Nim
- OCaml
- Oberon
- Pascal obiektowy
- Otwarty język programowania (OPL)
- Zaawansowany język biznesowy OpenEdge (ABL)
- Pascala
- Perl
- PHP
- PL/I
- PowerShell
- PROZA
- Pyton
- Pierścień
- Rubin
- Rdza
- Speakeasy
- Szybki
- Tcl
Języki trybu interaktywnego
Języki w trybie interaktywnym działają jak rodzaj powłoki: wyrażenia lub instrukcje można wprowadzać pojedynczo, a wynik ich oceny jest widoczny natychmiast. Tryb interaktywny jest również określany jako pętla read-eval-print (REPL).
- APL
- BASIC (niektóre dialekty)
- Clojure
- pospolity LISP
- Dart (z narzędziami programistycznymi Observatory lub Dartium)
- ECMAScript
- Erlang
- Eliksir (z iex)
- F#
- Fryzura
- GAUS
- Groovy
- Podstęp
- Haskell (z interpreterem GHCi lub Hugs)
- IDL
- J
- Java (od wersji 9)
- Julia
- Lua
- ŚWINKA (standardowy język ogólnego przeznaczenia ANSI)
- Klon
- Mathematica ( język Wolframa )
- MATLAB
- ML
- OCaml
- Perl
- PHP
- Szczupak
- Postscriptum
- PowerShell ( interfejs wiersza polecenia oparty na platformie .NET )
- Prolog
- Pyton
- PROZA
- R
- REBOL
- Rexx
- Pierścień
- Rubin (z IRB )
- Scala
- Schemat
- Smalltalk (w dowolnym miejscu w środowisku Smalltalk)
- S-Lang (z powłoką S-Lang, slsh)
- Speakeasy
- Szybki
- Tcl (z powłoką Tcl, tclsh)
- powłoka Uniksa
- Visual FoxPro
Języki interpretowane
Języki interpretowane to języki programowania, w których programy mogą być wykonywane z kodu źródłowego przez tłumacza. Teoretycznie każdy język może być kompilowany lub interpretowany, więc termin język interpretowany ogólnie odnosi się do języków, które są zwykle interpretowane, a nie kompilowane.
- Mrówka
- APL
- Język skryptowy AutoHotkey
- Język skryptowy AutoIt
- BASIC (niektóre dialekty)
- Język programowania dla biznesu (PL/B, dawniej DATABUS, późniejsze wersje dodały opcjonalną kompilację)
- Eiffel (za pośrednictwem technologii Melting Ice w EiffelStudio )
- Emacs Lisp
- OGNISKOWY
- Język GameMakera
- Groovy
- J
- jq
- Julia (kompilowana w locie do kodu maszynowego , domyślnie dostępna jest również interpretacja)
- JavaScript
- Lisp (wczesne wersje, sprzed 1962 r. i niektóre eksperymentalne; produkcyjne systemy Lisp są kompilatorami, ale wiele z nich nadal zapewnia tłumacza w razie potrzeby)
- LPC
- Lua
- ŚWINKA (standardowy język ogólnego przeznaczenia ANSI)
- Klon
- Mathematica ( język Wolframa )
- MATLAB
- OCaml
- Pascal (wczesne implementacje)
- PCASTL
- Perl
- PHP
- Postscriptum
- PowerShell
- PROZA
- Pyton
- Rexx
- R
- REBOL
- Pierścień
- Rubin
- Gwara
- Speakeasy
- Standardowa ML (SML)
- Kręcić się
- Tcl
- Herbata
- TorqueScript
- język skryptowy thinBasic
- VBScript
- Windows PowerShell — interfejs wiersza polecenia oparty na platformie .NET
- Niektóre języki skryptowe – poniżej
Języki iteracyjne
Języki iteracyjne są zbudowane wokół lub oferują generatory .
Języki według typu zarządzania pamięcią
Języki zebrane w śmieciach
Garbage Collection (GC) to forma automatycznego zarządzania pamięcią. Moduł wyrzucania elementów bezużytecznych próbuje odzyskać pamięć, która została przydzielona przez program, ale nie jest już używana.
Języki z ręcznym zarządzaniem pamięcią
Języki z opcjonalnym ręcznym zarządzaniem pamięcią
- Ada nie muszą oferować wyrzucania elementów bezużytecznych, ale semantyka języka to obsługuje, a wiele implementacji to obejmuje.
- D zapewnia programistom pełną kontrolę nad własnym modułem wyrzucania elementów bezużytecznych, w tym możliwość całkowitego wyłączenia go.
-
Nim jest zwykle domyślnie zbierany bezużytecznie lub liczony w referencjach, w zależności od jego konfiguracji, ale programista może użyć przełącznika
--mm:none
, aby ręcznie zwolnić pamięć. - Objective-C i Objective-C++ obsługują opcjonalne zliczanie odwołań i wyrzucanie elementów bezużytecznych jako alternatywę dla ręcznego zarządzania pamięcią (jednak firma Apple ogłosiła, że moduł wyrzucania elementów bezużytecznych jest przestarzały).
- Rust obsługuje opcjonalne liczenie referencji, ale preferowane jest ręczne zarządzanie pamięcią.
- Vala domyślnie korzysta z liczenia referencji, ale użytkownik może ręcznie zarządzać pamięcią, jeśli sobie tego życzy.
Języki z deterministycznym zarządzaniem pamięcią
Języki z automatycznym liczeniem referencji (ARC)
Języki listowe – LISP
Języki oparte na listach to rodzaj języka o strukturze danych, który jest oparty na strukturze danych listy .
Małe języki
Małe języki służą wyspecjalizowanej domenie problemowej.
- awk – używany do manipulacji plikami tekstowymi.
- Comet – używany do rozwiązywania złożonych kombinatorycznych problemów optymalizacyjnych w obszarach takich jak alokacja zasobów i harmonogramowanie
- sed – analizuje i przekształca tekst
- SQL – ma tylko kilka słów kluczowych i nie wszystkie konstrukcje potrzebne do pełnego języka programowania – wiele systemów zarządzania bazami danych rozszerza SQL o dodatkowe konstrukcje jako język procedur składowanych
Języki oparte na logice
oparte na logice określają zestaw atrybutów, które musi posiadać rozwiązanie, a nie zestaw kroków prowadzących do uzyskania rozwiązania.
Godne uwagi języki zgodne z tym paradygmatem programowania obejmują:
- ALF
- Alma-0
- CLACL (język CLAC)
- Curry
- Dziennik danych
- Fryzura
- Flix (funkcjonalny język programowania z pierwszorzędnymi ograniczeniami Datalog)
- Janus
- λProlog (język programowania logiki z typowaniem polimorficznym, programowaniem modułowym i programowaniem wyższego rzędu)
- Oz i wieloplatformowy system programowania Mozarta Oz
-
Prolog (formułuje dane i mechanizm oceny programu jako specjalną formę logiki matematycznej zwaną logiką Horna i ogólny mechanizm dowodzenia zwany rozdzielczością logiczną )
- Merkury (oparty na Prologu)
- Visual Prolog (obiektowe rozszerzenie Prologu)
- ROOP
- Suflet
Języki maszynowe
Języki maszynowe są bezpośrednio wykonywane przez procesor komputera. Są one zwykle formułowane jako wzorce bitowe, zwykle reprezentowane w systemie ósemkowym lub szesnastkowym . Każdy wzorzec bitowy powoduje, że obwody w CPU wykonują jedną z podstawowych operacji sprzętowych. Aktywacja określonych wejść elektrycznych (np. styków pakietu procesora dla mikroprocesorów) oraz logiczne ustawienia wartości stanu procesora sterują obliczeniami procesora. Poszczególne języki maszynowe są specyficzne dla rodziny procesorów; kod języka maszynowego dla jednej rodziny procesorów nie może działać bezpośrednio na procesorach z innej rodziny, chyba że dane procesory mają dodatkowy sprzęt do obsługi (na przykład procesory DEC VAX zawierały tryb zgodności PDP-11). Są (zasadniczo) zawsze definiowane przez programistę procesora, a nie przez osoby trzecie. Wersja symboliczna, procesora asembler , w większości przypadków jest również definiowany przez programistę. Niektóre powszechnie używane zestawy instrukcji kodu maszynowego to:
- RAMIĘ
- grudzień :
- Intel 8008 , 8080 i 8085
-
x86 :
-
16-bitowy x86 , po raz pierwszy użyty w Intel 8086
- Intel 8086 i 8088 (ten ostatni był używany w pierwszym i wczesnym IBM PC )
- Intel 80186
- Intel 80286 (pierwszy procesor x86 z trybem chronionym , używany w IBM AT )
- IA-32 , wprowadzony w 80386
- x86-64 – Oryginalna specyfikacja została stworzona przez firmę AMD . Istnieją warianty dostawców, ale zasadniczo są one takie same:
-
16-bitowy x86 , po raz pierwszy użyty w Intel 8086
- IBM
- MIPS
- Motorola 6800 ( 8-bitowa )
- Rodzina Motorola 68000 (procesory używane we wczesnych komputerach Apple Macintosh i wczesnych komputerach Sun )
-
Technologia MOS 65xx ( 8-bitowa )
- 6502 (procesor dla VIC-20 , Apple II i Atari 800 )
- 6510 (procesor dla Commodore 64 )
- Western Design Center 65816/65802 (procesor dla Apple IIGS i (wariant) Super Nintendo Entertainment System )
- National Semiconductor NS320xx
-
POWER , po raz pierwszy użyty w IBM RS/6000
- PowerPC – używany w Power Macintoshu oraz w wielu konsolach do gier , zwłaszcza siódmej generacji .
- Power ISA – ewolucja PowerPC .
- Sun Microsystems (obecnie Oracle ) SPARC
- UNIVAC
- MCST Elbrus 2000
Języki makr
Języki makr zastępowania tekstu
makr przekształcają jeden plik kodu źródłowego w inny. „Makro” to zasadniczo krótki fragment tekstu, który rozwija się w dłuższy (nie mylić z makrami higienicznymi ), prawdopodobnie z podstawieniem parametrów. Są często używane do wstępnego przetwarzania kodu źródłowego. Preprocesory mogą również zapewniać takie udogodnienia, jak włączanie plików .
Języki makr mogą być ograniczone do działania na specjalnie oznakowanych regionach kodu ( w przypadku preprocesora C poprzedzonego znakiem # ).
Alternatywnie, mogą nie, ale w tym przypadku nadal często niepożądane jest (na przykład) rozwijanie makra osadzonego w literale łańcuchowym , więc nadal potrzebują podstawowej świadomości składni. W takim przypadku często mają one zastosowanie do więcej niż jednego języka. Porównaj z językami, które można osadzić w kodzie źródłowym, takimi jak PHP , które są w pełni funkcjonalne.
- cpp (preprocesor C)
- m4 (oryginalnie z AT&T, w pakiecie z Unixem)
- ML/I (procesor makr ogólnego przeznaczenia)
Języki makr aplikacji
Języki skryptowe, takie jak Tcl i ECMAScript ( ActionScript , ECMAScript for XML , JavaScript , JScript ) zostały osadzone w aplikacjach. Są one czasami nazywane „językami makr”, chociaż w nieco innym sensie niż makra zastępujące tekst, takie jak m4 .
Języki metaprogramowania
Metaprogramowanie to pisanie programów, które piszą lub manipulują innymi programami, w tym samymi sobą, jako ich dane lub które wykonują część pracy, która w innym przypadku jest wykonywana w czasie wykonywania w czasie kompilacji . W wielu przypadkach pozwala to programistom zrobić więcej w takim samym czasie, jaki zajęłoby ręczne napisanie całego kodu.
- C++
- CWIC
- Kędzior
- D
- eC
- Emacs Lisp
- Eliksir
- F#
- Groovy
- Haskella
- Julia
- Seplenienie
- Lua
- System Maude'a
- Mathematica ( język Wolframa )
- META II (i META I, podzbiór)
- MetaOCaml
- Nemerle
- Nim
- Perl
- Pyton
- Pierścień
- Rubin
- Rdza
- Schemat
- SekwencjaL
- Pogawędka
- Źródło
- TREEMETA
Języki wieloparadygmatowe
Języki wieloparadygmatowe obsługują więcej niż jeden paradygmat programowania . Pozwalają programowi używać więcej niż jednego stylu programowania . Celem jest umożliwienie programistom korzystania z najlepszego narzędzia do pracy, przyznając, że żaden paradygmat nie rozwiązuje wszystkich problemów w najłatwiejszy lub najbardziej efektywny sposób.
- 1C: korporacyjny język programowania (ogólny, imperatywny, obiektowy, oparty na prototypach, funkcjonalny)
- Ada ( współbieżne , rozproszone , ogólne ( metaprogramowanie szablonów ), imperatywne , obiektowe ( oparte na klasach ))
- ALF ( funkcjonalny , logiczny )
- Alma-0 (ograniczenie, imperatyw, logika)
- APL (funkcjonalny, imperatywny, obiektowy (oparty na klasach))
- BETA (funkcjonalne, imperatywne, obiektowe (oparte na klasach))
- C++ (ogólny, imperatywny, obiektowy (oparty na klasach), funkcjonalny, metaprogramowanie)
- C# (ogólny, imperatywny, obiektowy (oparty na klasach), funkcjonalny, deklaratywny)
- Ceylon (ogólny, imperatywny, obiektowy (oparty na klasach), funkcjonalny, deklaratywny)
- ChucK (imperatywny, zorientowany obiektowo, oparty na czasie, współbieżny, w locie)
- Cobra (ogólny, imperatywny, obiektowy (oparty na klasach), funkcjonalny, umowny)
- Common Lisp (funkcjonalny, imperatywny, obiektowy (oparty na klasach), zorientowany na aspekty (użytkownik może dodawać dalsze paradygmaty, np. logikę))
- Curl (funkcjonalne, imperatywne, obiektowe (oparte na klasach), metaprogramowanie)
- Curry (współbieżne, funkcjonalne, logiczne)
- D (ogólne, imperatywne, funkcjonalne, obiektowe (oparte na klasach), metaprogramowanie)
- Dart (ogólny, imperatywny, funkcjonalny, obiektowy (oparty na klasach))
- Delphi Object Pascal (ogólny, imperatywny, obiektowy (oparty na klasach), metaprogramowanie)
- Dylan (funkcjonalny, obiektowy (oparty na klasach))
- eC (ogólny, imperatywny, obiektowy (oparty na klasach))
- ECMAScript (funkcjonalny, imperatywny, obiektowy (oparty na prototypach))
- Eiffel (imperatywny, obiektowy (oparty na klasach), ogólny, funkcjonalny (agenci), współbieżny (SCOOP))
- F# (funkcjonalny, ogólny, zorientowany obiektowo (oparty na klasach), zorientowany na język)
- Fantom (funkcjonalny, obiektowy (oparty na klasach))
- Idź , Golang (imperatywny, proceduralny),
- Groovy (funkcjonalny, obiektowy (oparty na klasach), imperatywny, proceduralny)
- Port
- Chmiel
- J (funkcjonalny, imperatywny, obiektowy (oparty na klasach))
- Julia (imperatywna, wielokrotna wysyłka („obiektowa”), funkcjonalna, metaprogramowanie)
- LabVIEW ( wizualny , przepływ danych , współbieżny, modułowy, funkcjonalny, obiektowy, skryptowy)
- Lava (zorientowana obiektowo (oparta na klasach), wizualna)
- Lua (funkcjonalne, imperatywne, obiektowe ( oparte na prototypach ))
- Mathematica ( język Wolframa )
- Merkury (funkcjonalny, logiczny, obiektowy)
- Protokoły metaobiektowe (zorientowane obiektowo (oparte na klasach, oparte na prototypach))
- Nemerle (funkcjonalne, obiektowe (oparte na klasach), imperatywne, metaprogramowanie)
- Objective-C (imperatywny, obiektowy (oparty na klasach), refleksyjny)
- OCaml (funkcjonalny, imperatywny, obiektowy (oparty na klasach), modułowy)
- Oz (funkcjonalny (ocena: chętny , leniwy ), logiczny, ograniczony , imperatywny, zorientowany obiektowo (oparty na klasach), współbieżny, rozproszony) i wieloplatformowy system programowania Mozarta Oz
- Object Pascal (imperatywny, obiektowy (oparty na klasach))
- Perl (imperatywny, funkcjonalny (nie może być czysto funkcjonalny), zorientowany obiektowo, zorientowany na klasy, zorientowany na aspekty (poprzez moduły))
- PHP (imperatywne, obiektowe, funkcjonalne (nie może być czysto funkcjonalne))
- Pike (interpretowany, ogólnego przeznaczenia, wieloplatformowy, dynamiczny język programowania wysokiego poziomu)
- Prograph (przepływ danych, obiektowy (oparty na klasach), wizualny)
- Python (funkcjonalny, kompilowany, interpretowany, obiektowy (oparty na klasach), imperatywny, metaprogramowanie, rozszerzenie, nieczysty, tryb interaktywny, iteracyjny, refleksyjny, skryptowy)
- R (tablica, interpretacja, nieczystość, tryb interaktywny, oparty na listach, zorientowany obiektowo, oparty na prototypach, skrypty)
- Racket (funkcjonalny, imperatywny, obiektowy (oparty na klasach) i może być rozszerzony przez użytkownika)
- REBOL (funkcjonalne, imperatywne, obiektowe (oparte na prototypach), metaprogramowanie (dialektowane))
- Czerwony (funkcjonalny, imperatywny, obiektowy (oparty na prototypach), metaprogramowanie (dialektowany))
- ROOP (imperatywny, logiczny, obiektowy (oparty na klasach), oparty na regułach)
- Pierścień (imperatywny, funkcjonalny, obiektowy (oparty na klasach), metaprogramowanie, deklaratywny, naturalny)
- Ruby (imperatywny, funkcjonalny, obiektowy (oparty na klasach), metaprogramowanie)
- Rust (współbieżny, funkcjonalny, imperatywny, obiektowy, ogólny, metaprogramowanie, skompilowany)
- Scala (funkcjonalny, obiektowy)
- Seed7 (imperatywny, obiektowy, ogólny)
- SISAL (współbieżny, przepływ danych, funkcjonalny)
- Arkusze kalkulacyjne (funkcjonalne, wizualne)
- Swift (zorientowany na protokół, obiektowy, funkcjonalny, imperatywny, o strukturze blokowej)
-
Tcl (funkcjonalne, imperatywne, obiektowe (oparte na klasach))
- Tea (funkcjonalne, imperatywne, obiektowe (oparte na klasach))
- Windows PowerShell (funkcjonalny, imperatywny, potokowy, zorientowany obiektowo (oparty na klasach))
Analiza numeryczna
Kilka języków programowania ogólnego przeznaczenia, takich jak C i Python , jest również używanych do obliczeń technicznych, ta lista skupia się na językach używanych prawie wyłącznie do obliczeń technicznych.
Języki inne niż angielski
- chiński BASIC (chiński)
- Fjölnir (islandzki)
- Język Symbolique d'Enseignement (francuski)
- Rapira (rosyjski)
- ezhil (tamilski)
Zorientowane obiektowo języki klasowe
Obiektowe języki programowania oparte na klasach obsługują obiekty zdefiniowane przez ich klasę. Definicje klas zawierają dane składowe. Przekazywanie wiadomości jest kluczową koncepcją, jeśli nie główną koncepcją, w językach obiektowych.
Funkcje polimorficzne sparametryzowane przez klasę niektórych ich argumentów są zwykle nazywane metodami . W językach z pojedynczą wysyłką klasy zazwyczaj zawierają również definicje metod. W językach z wieloma wywołaniami metody są definiowane przez funkcje generyczne . Istnieją wyjątki, w których pojedyncze metody wysyłania są funkcjami ogólnymi (np. system obiektowy Bigloo ).
Wielokrotna wysyłka
Pojedyncza wysyłka
- ActionScript 3.0
- Aktor
- Ada 95 i Ada 2005 (język uniwersalny)
- APL
- BETA
- C++
- C#
- Cejlon
- Strzałka
- Oxygene (dawniej Chrome)
- Cmokanie
- Kobra
- Zimna fuzja
- Kędzior
- D
- Język specyfikacji aplikacji rozproszonych (DASL)
- Pascal obiektowy Delphi
- mi
- GNU E
- eC
- Eiffla
- Skrypt F
- Fortran 2003
- Twierdza
- Gambas
- Język twórców gier
- Port
- J
- Jawa
- LabVIEW
- Lawa
- Lua
-
Modula-2 (abstrakcja danych, ukrywanie informacji, mocne pisanie, pełna modułowość)
- Modula-3 (dodano więcej funkcji zorientowanych obiektowo do Moduli-2)
- Nemerle
- NetRexx
- Oberon-2 (pełna równoważność zorientowania obiektowego w oryginalnym, silnie typowanym, wirthiańskim stylu)
- Pascal obiektowy
- Obiekt REXX
- Objective-C (nadzbiór C dodający model obiektowy pochodzący od Smalltalk i składnię przekazywania komunikatów)
- OCaml
- Zaawansowany język biznesowy OpenEdge (ABL)
- Oz, system programowania Mozarta
- Perl 5
- PHP
- Szczupak
- Prograf
- Python (język interpretacyjny, opcjonalnie zorientowany obiektowo)
- Rewolucja (programista nie wybiera obiektów)
- Pierścień
- Rubin
- Scala
- Speakeasy
- Simula (pierwszy język zorientowany obiektowo, opracowany przez Ole-Johana Dahla i Kristen Nygaard )
- Smalltalk (czysta orientacja obiektowa, opracowana w Xerox PARC )
- KRĘCIĆ SIĘ
- Superzderzak
- VBScript (język „makroskryptów” pakietu Microsoft Office)
- Wizualny DataFlex
- Visual FoxPro
- Prolog wizualny
- X++
- Xojo
- XOTcl
Zorientowane obiektowo języki oparte na prototypach
Języki oparte na prototypach to języki zorientowane obiektowo, w których usunięto rozróżnienie między klasami i instancjami:
- 1C: język programowania dla przedsiębiorstw
- Język współbieżny oparty na aktorach (ABCL, ABCL/1, ABCL/R, ABCL/R2, ABCL/c+)
- Agora
- Cecil
-
ECMAScript
- ActionScript
- ECMAScript dla XML
- JavaScript (najpierw nazwany Mocha, potem LiveScript)
- JScript
- Etoys w Squeak
- ja
- Lua
- MUCZEĆ
- Skrypt Newtona
- Obliq
- R
- REBOL
- Czerwony
- Self (pierwszy język oparty na prototypach, wywodzący się ze Smalltalk )
- TADS
Języki reguł off-side
reguł off-side oznaczają bloki kodu przez ich wcięcia .
Języki proceduralne
Proceduralne języki programowania opierają się na koncepcji jednostki i zakresu (zakresu przeglądania danych) wykonywalnej instrukcji kodu. Program proceduralny składa się z jednej lub więcej jednostek lub modułów, albo zakodowanych przez użytkownika, albo dostarczonych w bibliotece kodów; każdy moduł składa się z jednej lub więcej procedur, zwanych także funkcją, procedurą, podprogramem lub metodą, w zależności od języka. Przykłady języków proceduralnych obejmują:
- Ada (język uniwersalny)
- ALGOL 58
-
ALGOL 60 (bardzo wpływowy projekt językowy)
- SMALL Machine ALGOL Like Language
- Alma-0
- BASIC (brakuje im większości modułowości w (zwłaszcza) wersjach sprzed około 1990 roku)
- BCPL
- ROZKOSZ
- C
- C++ (C z obiektami i wieloma innymi, takimi jak generyczne poprzez STL)
- C# (podobny do Javy/C++)
- Cejlon
- CHŁOD
- ChucK (składnia podobna do C/Java, z nowymi elementami składni dotyczącymi czasu i równoległości)
- COBOL
- Kobra
- Zimna fuzja
- CPL (połączony język programowania)
- Kędzior
- D
- Distributed Application Specification Language (DASL) (połączenie programowania deklaratywnego i programowania imperatywnego )
- eC
-
ECMAScript
- ActionScript
- ECMAScript dla XML
- JavaScript (najpierw nazwany Mocha, potem LiveScript)
- JScript
- Źródło
- Eiffla
- Naprzód
- Fortran (lepsza modułowość w późniejszych standardach)
- GAUS
- Iść
- Port
- HyperTalk
- Jawa
- JOWIALNY
- Julia
- Język h
- Lasso
- Modula-2 (zasadniczo oparty na modułach)
- Mathematica ( język Wolframa )
- MATLAB
- Meza
- ŚWINKA (pierwsza wersja była bardziej modułowa niż inne języki tamtych czasów; od tego czasu standard stał się jeszcze bardziej modułowy)
- Nemerle
- Nim
- Oberon , Oberon-2 (ulepszone, mniejsze, szybsze, bezpieczniejsze kontynuacje Moduli-2)
- OCaml
- Ockham
- Wykusz
-
Pascal (następca ALGOL 60, poprzednik Moduli-2)
- Free Pascal (FPC)
- Obiekt Pascal , Delphi
- PCASTL
- Perl
- Szczupak
- PL/C
- PL / I (duży język ogólnego przeznaczenia, pierwotnie dla komputerów mainframe IBM)
- Plus
- PowerShell
- PROZA
- Pyton
- R
- Rapira
- RPG
- Rdza
- Gwara
- VBScript
- Visual Basic
- Visual FoxPro
- Microsoft Dynamics AX (X++)
Języki zapytań
Języki refleksyjne
refleksyjne pozwalają programom badać i ewentualnie modyfikować ich strukturę wysokiego poziomu w czasie wykonywania lub kompilacji. Jest to najczęściej spotykane w językach programowania maszyn wirtualnych wysokiego poziomu, takich jak Smalltalk , a rzadziej w językach programowania niższego poziomu, takich jak C. Języki i platformy wspierające refleksję:
- Befunge
- Cejlon
- Czar
- Cmokanie
- CLI
- Kobra
- Pascal BlackBox
- Kędzior
- Szyfrować
- Pascal obiektowy Delphi
- eC
- ECMAScript
- Emacs Lisp
- Eiffla
- Port
- Julia
- JVM
- Seplenienie
- Lua
- Mathematica ( język Wolframa )
- System Maude'a
- Oberon-2 – system ETH Oberon
- Cel C
- PCASTL
- Perl
- PHP
- Pico
- Poplog
- PowerShell
- Prolog
- Pyton
- REBOL
- Czerwony
- Pierścień
- Rubin
- Smalltalk (czysta orientacja obiektowa, pochodząca z Xerox PARC )
- Snobol
- Tcl
- XOTcl
- X++
- Xojo
Języki oparte na regułach
Języki oparte na regułach tworzą instancje reguł, gdy są aktywowane przez warunki w zbiorze danych. Spośród wszystkich możliwych aktywacji wybierany jest jakiś zestaw i wykonywane są instrukcje należące do tych reguł. Języki oparte na regułach obejmują: [ potrzebne źródło ]
- awk
- KLIPSY
- Claire
- Zasady obsługi ograniczeń
- Ślini się
- Język programowania agenta GOAL
- Pęto
- Mathematica ( język Wolframa )
- OPS5
- Prolog
- ToonTalk – roboty to zasady
- XSLT [ potrzebne źródło ]
Języki skryptowe
„ Język skryptowy ” ma dwa pozornie różne, ale w rzeczywistości podobne znaczenia. W tradycyjnym sensie języki skryptowe są przeznaczone do automatyzacji często używanych zadań, które zwykle obejmują wywoływanie lub przekazywanie poleceń programom zewnętrznym. Wiele złożonych aplikacji udostępnia wbudowane języki, które umożliwiają użytkownikom automatyzację zadań. Te, które są interpretacyjne , są często nazywane językami skryptowymi.
Ostatnio wiele aplikacji ma wbudowane tradycyjne języki skryptowe, takie jak Perl czy Visual Basic , ale wciąż jest w użyciu sporo rodzimych języków skryptowych. Wiele języków skryptowych jest kompilowanych do kodu bajtowego, a następnie ten (zwykle) niezależny od platformy kod bajtowy jest uruchamiany przez maszynę wirtualną (porównaj z wirtualną maszyną Java ).
- AngelScript
- AppleScript
- AutoHotKey
- AutoIt
- AWK
- pne
- Skorupa Fasoli
- Grzmotnąć
- Ch (Osadzany interpreter C/C++)
- CLI
- CLIST
- Zimna fuzja
-
ECMAScript
- ActionScript
- ECMAScript dla XML
- JavaScript (najpierw nazwany Mocha, potem LiveScript)
- JScript
- Źródło
- Emacs Lisp
- WYKONAWCA CMS
- WYKONANIE 2
- Skrypt F
- Język twórców gier (GML)
- GDScript
- ICI
- ja
- JASS
- Julia (kompilowana w locie do kodu maszynowego , domyślnie dostępna jest również interpretacja)
- JVM
- Ksz
- Lasso
- Lua
- MAXScript
- MEL
- Obiekt REXX (OREXX, OOREXX)
- Wykusz
- Skrypt Pascala
- Perl
- PHP (przeznaczony dla serwerów WWW)
- PowerShell
- Pyton
- R
- REBOL
- Czerwony
- Rexx
- Rewolucja
- Pierścień
- Rubin
- Gwara
- sed
- Cii
- Pogawędka
- Wiewiórka
- Herbata
- Tcl
- TorqueScript
- VBScript
- WebDNA , dedykowany stronom opartym na bazach danych
- Windows PowerShell ( interfejs wiersza polecenia oparty na platformie .NET )
- Winbatch
- Wiele języków poleceń powłoki, takich jak powłoka Unix lub DIGITAL Command Language (DCL) w systemie VMS, ma potężne możliwości tworzenia skryptów.
Języki oparte na stosie
Języki oparte na stosie to rodzaj języka o strukturze danych, który jest oparty na strukturze danych stosu .
Języki synchroniczne
Języki programowania synchronicznego są zoptymalizowane pod kątem programowania systemów reaktywnych, czyli systemów, które często są przerywane i muszą szybko reagować. Wiele takich systemów jest również nazywanych systemami czasu rzeczywistego i są często używane w systemach wbudowanych .
Przykłady:
Języki cieniowania
Język cieniowania to graficzny język programowania przystosowany do programowania efektów cieniowania. Takie formy językowe zwykle składają się ze specjalnych typów danych, takich jak „kolor” i „normalny”. Ze względu na różnorodność rynków docelowych grafiki komputerowej 3D.
Renderowanie w czasie rzeczywistym
Zapewniają zarówno wyższą abstrakcję sprzętową, jak i bardziej elastyczny model programowania niż poprzednie paradygmaty, które zakodowały na stałe równania transformacji i cieniowania. Daje to programiście większą kontrolę nad procesem renderowania i zapewnia bogatszą zawartość przy niższych nakładach.
- Adobe Graphics Assembly Language (AGAL)
- Język asemblera ARB (zespół ARB)
- Język cieniowania OpenGL (GLSL lub glslang)
- High-Level Shading Language (HLSL) lub DirectX Shader Assembly Language
- Język PlayStation Shader (PSSL)
- Język cieniowania metalu (MSL)
- CG
- Lśniący język cieniowania skał (SRSL)
- Iskra
- Język cieniowania azotu
- Język cieniowania Godota
Renderowanie offline
Języki cieniowania używane w renderowaniu offline zapewniają najwyższą jakość obrazu. Przetwarzanie takich shaderów jest czasochłonne. Wymagana moc obliczeniowa może być kosztowna ze względu na ich zdolność do uzyskiwania fotorealistycznych wyników.
- Język cieniowania RenderMan (RSL)
- Houdini VEX Shading Language (VEX)
- Język cieniowania Gelato
- Otwarty język cieniowania (OSL)
Języki obsługi składni
Języki te pomagają w generowaniu analizatorów leksykalnych i parserów dla gramatyk bezkontekstowych .
- ANTLR
- Coco/R (EBNF z semantyką)
- GNU bison (wersja Yacc FSF)
- GNU Flex (wersja FSF Lexa)
- glex/gyacc (kompilator-kompilator GoboSoft do Eiffla)
- lex (Analiza leksykalna, z Bell Labs)
- M4
- Analiza gramatyczna wyrażeń (PEG)
- Prolog
- Emacs Lisp
- Seplenienie
- SableCC
- Schemat
- yacc (kolejny kompilator-kompilator, z Bell Labs)
- JavaCC
Języki systemowe
Języki programowania systemu są przeznaczone do zadań niskiego poziomu, takich jak zarządzanie pamięcią lub zarządzanie zadaniami. Język programowania systemu zwykle odnosi się do języka programowania używanego do programowania systemu; takie języki są przeznaczone do pisania oprogramowania systemowego, które zwykle wymaga innego podejścia programistycznego w porównaniu z oprogramowaniem aplikacyjnym.
Oprogramowanie systemowe to oprogramowanie komputerowe przeznaczone do obsługi i sterowania sprzętem komputerowym oraz do zapewniania platformy do uruchamiania aplikacji. Oprogramowanie systemowe obejmuje kategorie oprogramowania, takie jak systemy operacyjne, oprogramowanie narzędziowe, sterowniki urządzeń, kompilatory i konsolidatory. Przykłady języków systemowych obejmują:
Język | Inicjator | Po raz pierwszy pojawiły się | Wpływem | Używany do |
---|---|---|---|---|
ESPOL | Firma Burroughs | 1961 | ALGOL 60 | MPK |
PL/I | IBM , UDOSTĘPNIJ | 1964 | ALGOL 60, FORTRAN, trochę COBOL | Multiki |
PL360 | Niklausa Wirtha | 1968 | ALGOL 60 | ALGOL W |
C | Dennisa Ritchiego | 1969 | BCPL | Większość jąder systemów operacyjnych , w tym Windows NT i większość systemów typu Unix |
PL/S | IBM | 196x | PL/I | OS/360 |
ROZKOSZ | Carnegie Mellon University | 1970 | ALGOL-PL/I | VMS (porcje) |
PL/8 | IBM | 197x | PL/I | AIX |
PL/MP i PL/MI | IBM | 197x | PL/I | CPF , OS/400 |
PL-6 | Honeywell, Inc. | 197x | PL/I | KP-6 |
SYMPL | CDC | 197x | JOWIALNY | NOS , większość kompilatorów, edytor FSE |
C++ | Bjarne Stroustrup | 1979 | C , Symula | Zobacz aplikacje C++ |
Ada | Jean Ichbiah , S. Tucker Taft | 1983 | ALGOL 68 , Pascal , C++ , Java , Eiffel | Systemy wbudowane, jądra systemów operacyjnych, kompilatory, gry, symulacje, CubeSat , kontrola ruchu lotniczego i awionika |
D | Cyfrowy Mars | 2001 | C++ | Wiele domen |
Nim | Andreasa Rumpfa | 2008 | Ada , Modula-3 , Lisp , C++ , Object Pascal , Python , Oberon | Jądra systemów operacyjnych, kompilatory, gry |
Rdza | Badania Mozilli | 2010 | C++ , Haskell , Erlang , Ruby | Silnik układu serwo , Redox OS |
Szybki | Apple Inc. | 2014 | C , Obiekt-C , Rust | macOS , tworzenie aplikacji na iOS |
Zig | Andrzej Kelly | 2016 | C , C++ , LLVM IR , Go , Rust , JavaScript | Jako zamiennik C |
Języki transformacji
Języki transformacji służą do przekształcania (tłumaczenia) kodu źródłowego określonego w określonym języku formalnym na określony kod formatu docelowego. Jest najczęściej używany w elementach pośrednich bardziej złożonych nadsystemów w celu przyjęcia wewnętrznych wyników do wprowadzenia do kolejnej procedury przetwarzania.
Języki wizualne
Wizualne języki programowania pozwalają użytkownikom określać programy w dwu (lub więcej) wymiarach, zamiast jednowymiarowych ciągów tekstowych, za pomocą różnego rodzaju układów graficznych. Niektóre programowania przepływu danych są również językami wizualnymi.
- Analytica
- Blokowo
- Clickteam Fuzja
- DRAKON
- Fabryka
- G (używane w LabVIEW )
- Konik polny
- Lawa
- Maks
- NXT-G
- Rys
- Prograf
- Czyste dane
- Kompozytor kwarcowy
- Scratch (napisany i oparty na Squeak , wersji Smalltalk )
- Pstryknąć!
- Simulink
- Arkusze kalkulacyjne
- Przepływ stanu
- Podtekst
- ToonTalk
- VEE
- VisSim
- Www
- XOD
- EICASLAB
Języki Wirtha
Informatyk Niklaus Wirth zaprojektował i wdrożył kilka wpływowych języków.
- ALGOL W
- Eulera
- Modula
- Oberon (Oberon, Oberon-07, Oberon-2)
-
Pascal
- Object Pascal (nazwa parasolowa dla Delphi , Free Pascal , Oxygene , inne)
Języki oparte na XML
XML lub działające na nim .
Zobacz też
- Paradygmat programowania
- IEC 61131-3 – standard dla języków programowalnych sterowników logicznych (PLC).
- Lista edukacyjnych języków programowania
- Ezoteryczny język programowania