Lista języków programowania według typu - List of programming languages by type
Listy języków programowania |
---|
To jest lista ważnych języków programowania pogrupowanych według typu.
Nie ma nadrzędnego schematu klasyfikacji języków programowania. Dlatego w wielu przypadkach język znajduje się pod wieloma nagłówkami.
Języki tablic
Języki 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 wyższych wymiarów .
Języki asemblera
Języki asemblerowe bezpośrednio odpowiadają językowi maszynowemu (patrz poniżej ), chociaż może nie być mapowania 1-1 między indywidualną instrukcją a indywidualną instrukcją, więc instrukcje kodu maszynowego pojawiają się w formie zrozumiałej dla ludzi. 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 authoringu jest językiem programowania desined do użytku przez eksperta bez komputera, aby łatwo tworzyć tutoriale, stron internetowych i innych interaktywnych programów komputerowych.
- Architektura typowania informacji Darwina (DITA)
- Lasso
- PILOT
- KOREPETYTOR
- Oprogramowanie autorskie
Języki programowania z ograniczeniami
Język programowania ograniczeniem jest deklaratywny język programowania, w którym relacje między zmiennymi są wyrażone jako ograniczeń . Wykonanie odbywa się poprzez próbę znalezienia wartości dla zmiennych, które spełniają wszystkie zadeklarowane ograniczenia.
Języki interfejsu wiersza poleceń
Języki interfejsu wiersza polecenia (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 od GNU , Free Software Foundation (FSF))
- CLIST ( Lista poleceń MVS )
- WYKONANIE 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 CLI/język wsadowy dla komputerów IBM PC z systemami operacyjnymi DOS , popularny przed Windows )
- WYKONANIE 2
- Expect (narzędzie do automatyzacji i testowania systemu Unix )
- ryba ( powłoka Unixa )
- Powłoka Hamilton C (powłoka C dla Windows)
- ksh (standardowa powłoka uniksowa , napisana przez Davida Korna )
- Rc (powłoka wiersza poleceń dla Planu 9 )
- Rexx
- sh (standardowa powłoka uniksowa , napisana przez Stephena R. Bourne'a )
- TACL (Tandemowy Zaawansowany Język Polecenia)
- Język wsadowy systemu Windows ( język pliku wsadowego systemu Windows w rozumieniu COMMAND.COM i CMD.EXE )
- Windows PowerShell ( CLI oparty na platformie .NET )
- zsh ( powłoka uniksowa )
Skompilowane języki
Są to języki zazwyczaj przetwarzane przez kompilatory , chociaż teoretycznie każdy język może być skompilowany lub zinterpretowany. Zobacz także język skompilowany .
- ActionScript
- Ada (język uniwersalny)
- ALGOL 58
-
ALGOL 60 (bardzo wpływowy projekt językowy)
- MAŁA maszyna ALGOL jak język
- Ballerina (skompilowana do kodu bajtowego specyficznego dla Ballerina Runtime (BVM))
- BASIC (niektóre dialekty, w tym pierwsza wersja Dartmouth BASIC)
- BCPL
- C (jeden z najczęściej używanych języków proceduralnych)
- C++ (powszechnie używany język wieloparadygmatyczny wywodzący się z C)
- C# (skompilowany do CIL , generuje obraz natywny w czasie wykonywania)
- Cejlon (skompilowany do kodu bajtowego JVM )
- CHŁOD
- CLIPPER 5.3 (język programowania dla oprogramowania opartego na DOS)
- CLEO (Clear Language for Expressing Orders) na brytyjskich komputerach Leo
- Clojure (skompilowany do kodu bajtowego JVM )
- COBOL
- Kobra
- Wspólne seplenienie
- Kryształ
- Kędzior
- D (z reengineeringu C++)
- DASL kompiluje się do Java, JavaScript, JSP, Flex itp. jako plik .war
- Delphi ( Borland „S Pascal obiektu systemu rozwoju)
- DIBOL (Digital Interactive Business Oriented Language)
- Dylan
- eK
- Eiffel (język obiektowy opracowany przez Bertranda Meyera )
- Wiąz
- Emacs Lisp
- Szmaragd
- Erlang
- F# (skompilowany do CIL , aby wygenerować obraz środowiska uruchomieniowego)
- Czynnik
- Fortran (pierwszy na wysokim poziomie, skompilowany język, z IBM „s John Backus )
- GAUS
- Udać się
- Gosu (skompilowany do kodu bajtowego JVM )
- Groovy (skompilowany do kodu bajtowego JVM )
- Haskell
- Port
- Java (zwykle skompilowany do kodu bajtowego JVM, chociaż istnieją kompilatory AOT, które kompilują do kodu maszynowego )
- JOWIALNY
- Julia (skompilowana w locie do kodu maszynowego)
- Kotlin (Kotlin/Native używa LLVM do tworzenia natywnych plików binarnych)
- LabVIEW
- Rtęć
- Mesa
- Nemerle (skompilowany do kodu bajtowego języka pośredniego)
- Nimi
- Cel C
- P
- Pascal (większość wdrożeń)
- PL/I (język ogólnego przeznaczenia, pierwotnie dla komputerów mainframe IBM)
- Plus
- Python (kompiluje do kodu bajtowego pośredniej maszyny wirtualnej )
- RPG (Generator programu raportów)
- Rdza
- Scala (skompilowany do kodu bajtowego JVM )
- Schemat (niektóre implementacje, np. Gambit)
- SequenceL – czysto funkcjonalny, automatycznie równoległy i wolny od wyścigów
- Simula (pierwszy język obiektowy, nadzbiór ALGOL 60 )
- Smalltalk kompiluje do niezależnego od platformy kodu bajtowego dla maszyny wirtualnej
- Szybki
-
ML
- Standardowa uczenie maszynowe (SML)
- OCaml
- Turing
- Vala (kompilator dla systemu typu GObject)
- Visual Basic (użyj Common Intermediate Language (CIL), który jest JIT skompilowany do natywnego środowiska uruchomieniowego)
- Visual FoxPro
- Prolog wizualny
- Xojo
Języki współbieżne
Języki przekazujące wiadomości zapewniają konstrukcje językowe dla współbieżności . Dominującym paradygmatem współbieżności w językach głównego nurtu, takich jak Java, jest współbieżność pamięci współdzielonej. Języki współbieżne, które wykorzystują przekazywanie komunikatów, są zazwyczaj inspirowane obliczeniami procesów, takimi jak komunikowanie procesów sekwencyjnych (CSP) lub rachunek π .
- Ada – język wielozadaniowy
- 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 dla równoległości
- Ballerina - język przeznaczony do wdrażania i orkiestracji mikroserwisów. Zapewnia model współbieżności oparty na wiadomościach.
- ChuckK – język programowania audio specyficzny dla domeny, precyzyjna kontrola współbieżności i timingu
- Cilk – współbieżne C
- Cω – C Omega, język badawczy będący rozszerzeniem C#, wykorzystuje komunikację asynchroniczną
- Clojure – dialekt Lispu dla wirtualnej maszyny Java
- Kaplica
- Co-array Fortran
- Współbieżny Pascal (by Brinch-Hansen)
- Curry
- E – wykorzystuje obietnice, zapewnia, że nie dojdzie do zakleszczeń
- Eiffel (poprzez mechanizm SCOOP , Simple Concurrent Object-Oriented Computation)
- Elixir (działa na maszynie wirtualnej Erlang)
- Szmaragd - używa wątków i monitorów
- Erlang – wykorzystuje asynchroniczne przekazywanie wiadomości bez udostępniania
- Schemat Gambitu - korzystanie z biblioteki Termite
- Udać się
- Haskell — obsługuje programowanie współbieżne, rozproszone i równoległe na wielu maszynach
-
Jawa
- Dołącz do Javy – współbieżny język oparty na Javie
- X10
- Julia
- Joule – język przepływu danych, komunikuje się poprzez przekazywanie wiadomości
- Limbo – krewny Alefa , używany do programowania systemów w Inferno (system operacyjny)
- MultiLisp – wariant schematu rozszerzony o obsługę równoległości
-
occam – pod silnym wpływem procesów komunikacji sekwencyjnej (CSP)
- occam-π – nowoczesna odmiana occam , która łączy idee z rachunku π Milnera
- Ork
- Oz – język wieloparadygmatyczny, obsługuje współbieżność stanu współdzielonego i przekazu komunikatów oraz przyszłość, a także wieloplatformowy system programowania Mozarta Oz
- P
- Pict – zasadniczo wykonywalna implementacja rachunku π Milnera
- Python — używa paralelizmu opartego na wątkach i paralelizmu opartego na procesach
- Rdza
- Scala – implementuje aktorów w stylu Erlanga na JVM
- SequenceL – czysto funkcjonalny, automatycznie równoległy i wolny od wyścigów
- SR – język badawczy
- Zunifikowany równoległy C
- XPoc – język przetwarzania XML, umożliwiający współbieżność
Języki z nawiasami kręconymi
Kręcone wspornik lub języków programowania kręcone karczkiem mają składnię, która blokuje oświadczenie definiuje używając nawias klamrowy lub usztywnień znaków {
i}
. Ta składnia pochodzi z BCPL (1966) i została spopularyzowana przez C . Wiele języków z nawiasami kręconymi wywodzi się lub jest pod silnym wpływem języka C. Przykłady języków z nawiasami kręconymi 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 audio
- Cilk – współbieżne C do wielowątkowego programowania równoległego
- Cyklon – bezpieczniejszy wariant C
- D
- Strzałka
- DASL – oparty na Javie
- mi
- eK
- ECMAScript
- GLSL
- HLSL
- ICI
- Jawa
- LPC
- MEL
- Nemerle – łączy w sobie funkcje C# i ML, zapewnia możliwości rozszerzania składni
- PCASTL
- Perl
- PHP
- Pico
- Szczupak
- PowerShell
- r
- Rdza
- Gwara
- Scala (opcjonalnie nawiasy klamrowe)
- sed
- Superzderzacz
- Szybki
- UnrealScript
- Yorick
- YASS
Języki przepływu danych
Języki programowania Dataflow polegają na (zwykle wizualnej) reprezentacji przepływu danych w celu określenia programu. Często używane 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. Przykłady języków zorientowanych na dane obejmują:
- Ostry
- Kliper
- dBase języka dostępu do relacyjnych baz danych
- Zły duch
- MUMPS (standardowy język ANSI ogólnego przeznaczenia ze specjalizacjami do pracy z bazami danych)
- Pamięć podręczna (podobna do świnki)
- RDQL
- SPARQL
- SQL
- Samouczek D – zobacz też Trzeci Manifest
- Visual FoxPro – natywny silnik RDBMS, obiektowy, RAD
- WebDNA
- Język Wolfram
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 60. opracowano szereg języków, w których główna logika jest wyrażana bezpośrednio w formie tabeli decyzyjnej, w tym:
Języki deklaratywne
Języki deklaratywne wyrażają logikę obliczeń bez szczegółowego opisu przepływu sterowania. Programowanie deklaratywne stoi w przeciwieństwie do programowania imperatywnego za pomocą imperatywnych języków programowania, gdzie 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.
- Analityka
- Ant (połączenie programowania deklaratywnego i programowania imperatywnego )
- Curry
- Szyfrować
- Distributed Application Specification Language (DASL) (połączenie programowania deklaratywnego i programowania imperatywnego )
- ECL
- Zły duch
- Połysk
- Rtęć
- MetaPost
- Modelica
- Prolog
- QML
- Oz
- RDQL
- SequenceL – czysto funkcjonalny, automatycznie równoległy i wolny od wyścigów
- SPARQL
- SQL (tylko DQL, nie DDL, DCL i DML)
- Język Wolfram
- xBase
- Transformacje XSL
Osadzane języki
W kodzie źródłowym
Języki, które można osadzić w źródłach, osadzają małe fragmenty kodu wykonywalnego wewnątrz fragmentu tekstu o dowolnej formie, często strony internetowej.
Języki osadzone po stronie klienta są ograniczone możliwościami przeglądarki lub zamierzonego klienta. Mają na celu zapewnienie dynamizmu stronom internetowym bez konieczności ponownego kontaktu z serwerem.
Języki wbudowane po stronie serwera są znacznie bardziej elastyczne, ponieważ w serwerze można wbudować prawie każdy język. Celem osadzania fragmentów kodu po stronie serwera na stronie internetowej jest dynamiczne generowanie dodatkowych znaczników; sam kod znika, gdy strona jest obsługiwana, i zostaje zastąpiony jej danymi wyjściowymi.
Po stronie serwera
- PHP
- VBScript
- SMX – dedykowany do stron internetowych
- Tcl – server-side w NaviServer i niezbędny komponent w systemach przemysłu elektronicznego
- WebDNA – dedykowany dla stron internetowych opartych na bazach danych
Powyższe przykłady są szczególnie dedykowane do tego celu. Wiele innych języków, takich jak Erlang , Scala , Perl i Ruby może zostać zaadaptowanych (na przykład poprzez przekształcenie w moduły Apache ).
Strona klienta
W kodzie obiektu
W skompilowanym kodzie wykonywalnym można osadzić wiele różnych języków dynamicznych lub skryptowych. Zasadniczo kod wynikowy dla interpretera 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 oceny jako ciągi. W ten sposób można zaimplementować języki kontroli aplikacji, jeśli kod źródłowy jest wprowadzany przez użytkownika. Preferowane są języki z małymi tłumaczami.
Edukacyjne języki programowania
Języki opracowane przede wszystkim w celu nauczania i uczenia się programowania.
Języki ezoteryczne
Ezoteryczny język programowania to język programowania zaprojektowany jako test granicach programowania komputerowego projektowania języka, jako dowód koncepcji, lub jako żart.
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 )
- Powłoka fasoli
- KAL
- C/AL (C/BOK)
- Podstęp
- Emacs Lisp
- JavaScript i niektóre dialekty, np. JScript
- Lua (osadzone w wielu grach)
- OpenCL (rozszerzenie C i C++ do korzystania z GPU i równoległych rozszerzeń CPU)
- OptimJ (rozszerzenie Java z obsługą języków do pisania modeli optymalizacyjnych i potężnymi abstrakcjami do masowego przetwarzania danych)
- Perl
- Szczupak
- Python (wbudowany w Maya, Blender i inne pakiety animacji 3D)
- Rexx
- Rubin (Google SketchUp)
- Gwara
- SQL
- Wiewiórka
- Tcl
- Skrypt Vima (vim)
- Visual Basic for Applications (VBA)
- Windows PowerShell
Języki czwartej generacji
Języki programowania czwartej generacji to języki wysokiego poziomu zbudowane wokół systemów baz danych. Są powszechnie używane w środowiskach komercyjnych.
- 1C: język programowania dla przedsiębiorstw
- ABAP
- CorVision
- CSC „s GraphTalk
- CA-IDEAL (interaktywne środowisko programistyczne zapewniające żywotność aplikacji) do użytku z CA-DATACOM/DB
- Generator raportów Easytrieve (obecnie CA-Easytrieve Plus)
- CENTRUM
- IBM Informix-4GL
- LINC 4GL
- MAPPER ( Unisys/Sperry ) – obecnie część BIS
- MARK-IV ( Sterling/Informatyka ) teraz WIZJA: BUDOWNICZY CA
- NATURALNY
- Postęp 4GL
- Fala PV
- LiveCode (nie oparty na bazie danych; jednak celem jest praca na wyższym poziomie abstrakcji niż 3GLs)
- SAS
- SQL
- Ubercode (VHLL lub język bardzo wysokiego poziomu)
- Uniface
- Wizualne DataFlex
- Visual FoxPro
- xBase
Języki funkcjonalne
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”, zawierających cechy imperatywne. Wiele języków funkcjonalnych jest powiązanych z narzędziami do obliczeń matematycznych. Języki funkcjonalne obejmują:
Czysty
Zanieczyszczony
- APL
- ATS
- KAL
- C++ (od C++11 )
- C#
- VB.NET
- Cejlon
- D
- Strzałka
- Kędzior
- ECMAScript
- Erlang
- F#
- Flix
- Groovy
- Chmiel
- J
- Java (od wersji 8)
- Julia
- Kotlin
-
Seplenienie
- Clojure
- Wspólne seplenienie
- Dylan
- Emacs Lisp
- LFE
- Małe B
- Logo
-
Schemat
- Rakieta (dawniej Schemat PLT)
- Herbata
- Matematyka
-
ML
- Standardowa uczenie maszynowe (SML)
- OCaml
- Nemerle
- Nimi
- Opal
- OPS5
- Perl
- PHP
- Pyton
- Q (język programowania równań)
- Q (język programowania firmy Kx Systems)
- r
- Raku
- REBOL
- czerwony
- Rubin
- REFAL
- Rdza
- Scala
- Szybki
- Arkusze kalkulacyjne
- Tcl
- Język Wolfram
Języki opisu sprzętu
W elektronice język opisu sprzętu (HDL) jest wyspecjalizowanym językiem komputerowym używanym do opisywania struktury, projektu i działania obwodów elektronicznych, a najczęściej cyfrowych obwodów logicznych. Dwie najczęściej używane i dobrze obsługiwane 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/mieszanego)
HDL do projektowania obwodów cyfrowych
Języki imperatywne
Języki programowania imperatywnego mogą być wieloparadygmatyczne 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
- ECMAScript
- FORTRAN
- GAUS
- Udać się
- Groovy
- Jawa
- Julia
- Lua
- MATLAB
- Języki maszynowe
- Moduł-2 , Moduł-3
- ŚWINKA
- Nimi
- OCaml
- Oberon
- Obiekt Pascal
- Pascal
- Perl
- PHP
- PL/I
- PowerShell
- PROZA
- Pyton
- Rubin
- Rdza
- Spokojnie
- Szybki
- Tcl
- Język Wolfram
Języki trybu interaktywnego
Języki trybu interaktywnego 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ż nazywany pętlą odczytu, oceny i drukowania (REPL).
- APL
- BASIC (niektóre dialekty)
- Clojure
- Wspólne seplenienie
- Dart (z narzędziami programistycznymi Obserwatorium lub Dartium)
- ECMAScript
- Erlang
- Eliksir (z iex)
- F#
- Fril
- GAUS
- Groovy
- Haskell (z tłumaczem GHCi lub Hugs)
- IDL
- J
- Java (od wersji 9)
- Julia
- Lua
- świnka (język ogólnego przeznaczenia zgodny ze standardem ANSI)
- Klon
- Matematyka ( język Wolfram )
- MATLAB
- ML
- OCaml
- Perl
- PHP
- Szczupak
- Postscriptum
- Prolog
- Pyton
- PROZA
- r
- REBOL
- Rexx
- Rubinowy (z IRB )
- Scala
- Schemat
- Smalltalk (w dowolnym miejscu w środowisku Smalltalk)
- S-Lang (z powłoką S-Lang, slsh)
- Spokojnie
- Szybki
- Tcl (z powłoką Tcl, tclsh)
- Powłoka uniksowa
- Windows PowerShell ( CLI oparty na platformie .NET )
- Visual FoxPro
Tłumaczone języki
Języki interpretowane to języki programowania, w których programy mogą być wykonywane z postaci kodu źródłowego przez interpreter. Teoretycznie każdy język może być kompilowany lub interpretowany, więc termin „ język interpretowany” odnosi się do języków, które zwykle są 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 z dodaną opcjonalną kompilacją)
- Eiffel (poprzez technologię Melting Ice w EiffelStudio )
- Emacs Lisp
- Język GameMakera
- Groovy
- J
- Julia (skompilowana w locie do kodu maszynowego , ale istnieje transpiler Julia2C )
- JavaScript
- Lisp (wczesne wersje, sprzed 1962 i niektóre eksperymentalne; produkcyjne systemy Lisp to kompilatory, ale wiele z nich nadal zapewnia interpreter w razie potrzeby)
- LPC
- Lua
- świnka (standardowy język ogólnego przeznaczenia ANSI)
- Klon
- Matematyka
- MATLAB
- OCaml
- Pascal (wczesne wdrożenia)
- PCASTL
- Perl
- PHP
- Postscriptum
- PowerShell
- PROZA
- Pyton
- Rexx
- r
- REBOL
- Rubin
- Gwara
- Spokojnie
- Standardowa uczenie maszynowe (SML)
- Kręcić się
- Tcl
- Herbata
- TorqueScript
- Język skryptowy thinBasic
- VBScript
- Windows PowerShell — interfejs wiersza polecenia oparty na platformie .NET
- Język Wolfram
- Niektóre języki skryptowe – poniżej
Języki iteracyjne
Języki iteracyjne są budowane wokół lub oferują generatory .
Języki według typu zarządzania pamięcią
Języki zbierane ze śmieci
Garbage Collection (GC) to forma automatycznego zarządzania pamięcią. Moduł odśmiecania pamięci próbuje odzyskać pamięć przydzieloną przez program, ale nie jest już używana.
Języki z ręcznym zarządzaniem pamięcią
Języki z deterministycznym zarządzaniem pamięcią
Języki z automatycznym liczeniem referencji (ARC)
Języki oparte na listach – LISP
Języki oparte na listach to typ języka o strukturze danych, który jest oparty na strukturze danych listy .
Małe języki
Małe języki służą do wyspecjalizowanej dziedziny problemowej.
- awk – używany do manipulacji plikami tekstowymi.
- Comet – służy do rozwiązywania złożonych problemów optymalizacji kombinatorycznej w obszarach takich jak alokacja zasobów i harmonogramowanie
- sed – analizuje i przekształca tekst
- SQL – ma tylko kilka słów kluczowych, a 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
Języki oparte na logice określają zestaw atrybutów, które musi mieć rozwiązanie, a nie zestaw kroków w celu uzyskania rozwiązania.
Znane języki zgodne z tym paradygmatem programowania obejmują:
- ALF
- Alma-0
- CLACL (język CLAC)
- Curry
- Fril
- Flix (funkcjonalny język programowania z pierwszorzędnymi ograniczeniami Datalog)
- Janus
- λProlog (język programowania logicznego z typowaniem polimorficznym, programowaniem modułowym i programowaniem wyższego rzędu)
- Oz i system programowania Mozart na wielu platformach Oz
-
Prolog (formułuje dane i mechanizm oceny programu jako specjalną formę logiki matematycznej zwanej logiką Horna i ogólny mechanizm dowodzenia zwany logiką rozdzielczością )
- Merkury (na podstawie Prologu)
- Visual Prolog (rozszerzenie Prolog obiektowe)
- ROOP
Języki maszynowe
Języki maszynowe są bezpośrednio wykonywane przez procesor komputera. Są one zazwyczaj formułowane jako wzorce bitowe, zwykle reprezentowane w postaci ósemkowej lub szesnastkowej . Każdy wzór bitowy powoduje, że obwody w procesorze wykonują jedną z podstawowych operacji sprzętowych. Aktywacja określonych wejść elektrycznych (np. pinów obudowy procesora dla mikroprocesorów) oraz ustawienia logiczne wartości stanu procesora sterują obliczeniami procesora. Poszczególne języki maszynowe są specyficzne dla rodziny procesorów; kod w języku maszynowym dla jednej rodziny procesorów nie może działać bezpośrednio na procesorach z innej rodziny, chyba że dane procesory mają do tego dodatkowy sprzęt (na przykład procesory DEC VAX mają tryb zgodności PDP-11). Są one (zasadniczo) zawsze definiowane przez programistę procesora, a nie przez strony trzecie. Wersja symboliczna, język asemblera procesora , jest również w większości przypadków definiowana przez programistę. Niektóre powszechnie używane zestawy instrukcji kodu maszynowego to:
-
RAMIĘ
- Oryginalny 32-bitowy
- 16-bitowe instrukcje kciuka (używany podzbiór lub rejestry)
- 64-bitowy (poważna zmiana architektury, więcej rejestrów)
- 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 AMD . Istnieją warianty dostawcy, ale zasadniczo są takie same:
-
16-bitowy x86 , po raz pierwszy użyty w Intel 8086
- IBM
- MIPS
- Motorola 6800
- Rodzina Motorola 68000 (procesory używane we wczesnych komputerach Apple Macintosh i wczesnych Sun )
-
Technologia MOS 65xx
- 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 )
- Krajowy półprzewodnik NS320xx
-
POWER , po raz pierwszy użyty w IBM RS/6000
- PowerPC – używany w Power Macintoshach oraz w wielu konsolach do gier , zwłaszcza siódmej generacji .
- Moc ISA
- Sun Microsystems (teraz Oracle ) SPARC
- UNIVAC
- MCST Elbrus 2000
Języki makr
Języki makr zastępowania tekstu
Języki makr przekształcają jeden plik kodu źródłowego w inny. „Makro” to w zasadzie krótki fragment tekstu, który rozwija się w dłuższy (nie mylić z makrami higienicznymi ), prawdopodobnie z podmianą parametrów. Są często używane do wstępnego przetwarzania kodu źródłowego. Preprocesory mogą również dostarczać funkcje, takie jak dołączanie plików .
Języki makr mogą być ograniczone do działania na specjalnie oznaczonych regionach kodu (z prefiksem #
w przypadku preprocesora C). Ewentualnie mogą nie, ale w tym przypadku często niepożądane jest (na przykład) rozszerzanie makra osadzonego w literale ciągu , więc nadal potrzebują podstawowej świadomości składni. W związku z tym często nadal mają zastosowanie do więcej niż jednego języka. Porównaj z językami , które można osadzić w źródłach, takimi jak PHP , które są w pełni funkcjonalne.
- cpp (preprocesor C)
- m4 (pierwotnie 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 dla 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
Metaprogramming jest pisanie programów, które piszą lub manipulować innych programów, w tym siebie, jako że ich dane lub wykonać część prac, które są inaczej wykonane w czasie wykonywania podczas kompilacji . W wielu przypadkach pozwala to programistom zrobić więcej w takim samym czasie, jaki zajęłoby im ręczne napisanie całego kodu.
- C++
- CWIC
- Kędzior
- D
- eK
- Emacs Lisp
- Eliksir
- F#
- Groovy
- Haskell
- Julia
- Seplenienie
- Lua
- Maude system
- Matematyka
- META II (oraz META I, podzbiór)
- MetaOCaml
- Nemerle
- Nimi
- Perl
- Pyton
- Rubin
- Rdza
- Schemat
- SekwencjaL
- Pogawędka
- Źródło
- DRZEWO
- Język Wolfram
Języki wieloparadygmatyczne
Języki wieloparadygmatyczne obsługują więcej niż jeden paradygmat programowania . Pozwalają programowi na używanie 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 najprostszy i najbardziej efektywny sposób.
- 1C: Język programowania dla przedsiębiorstw (ogólny, imperatywny, obiektowy, prototypowy, funkcjonalny)
- Ada ( współbieżne , rozproszone , ogólne ( metaprogramowanie szablonowe ), imperatywne , obiektowe ( oparte na klasach )
- ALF ( funkcjonalne , logiczne )
- Alma-0 (ograniczenie, imperatyw, logika)
- APL (funkcjonalne, imperatywne, obiektowe (oparte na klasach))
- BETA (funkcjonalna, imperatywna, obiektowa (oparta na klasach))
- C++ (ogólne, imperatywne, obiektowe (oparte na klasach), funkcjonalne, metaprogramowanie)
- C# (ogólny, imperatywny, obiektowy (oparty na klasach), funkcjonalny, deklaratywny)
- Cejlon (ogólny, imperatywny, obiektowy (klasowy), funkcjonalny, deklaratywny)
- ChucK (imperatywne, obiektowe, oparte na czasie, współbieżne, w locie)
- Cobra (ogólna, imperatywna, obiektowa (oparta na klasach), funkcjonalna, kontraktowa)
- Common Lisp (funkcjonalne, imperatywne, zorientowane obiektowo (oparte na klasach), zorientowane aspektowo (użytkownik może dodać kolejne 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)
- Delphi Object Pascal (ogólne, imperatywne, obiektowe (oparte na klasach), metaprogramowanie)
- Dylan (funkcjonalne, zorientowane obiektowo (oparte na klasach))
- eC (ogólne, imperatywne, obiektowe (oparte na klasach))
- ECMAScript (funkcjonalne, imperatywne, obiektowe (oparte na prototypach))
- Eiffel (imperatywne, obiektowe (oparte na klasach), generyczne, funkcjonalne (agenci), współbieżne (SCOOP))
- F# (funkcjonalne, ogólne, zorientowane obiektowo (oparte na klasach), zorientowane na język)
- Fantom (funkcjonalny, obiektowy (oparty na klasach))
- Idź (imperatywna, proceduralna),
- Groovy (funkcjonalne, obiektowe (oparte na klasach), imperatywne, proceduralne)
- Port
- Chmiel
- J (funkcjonalne, imperatywne, obiektowe (oparte na klasach))
- Julia (imperatyw, wielokrotna wysyłka ("zorientowana obiektowo"), funkcjonalna, metaprogramowanie)
- LabVIEW ( przepływ danych , wizualizacja )
- Lawa (zorientowana obiektowo (oparta na klasach), wizualna)
- Lua (funkcjonalna, imperatywna, obiektowa ( prototypowa ))
- Merkury (funkcjonalny, logiczny, obiektowy)
- Protokoły metaobiektowe (zorientowane obiektowo (oparte na klasach, oparte na prototypach))
- Nemerle (funkcjonalne, obiektowe (oparte na klasach), imperatywne, metaprogramowanie)
- Cel-C (imperatywne, zorientowane obiektowo (oparte na klasach), refleksyjne)
- OCaml (funkcjonalny, imperatywny, obiektowy (klasowy), modułowy)
- Oz (funkcjonalny (ocena: zachłanny , leniwy ), logiczny, ograniczający , imperatywny, obiektowy (oparte na klasach), współbieżny, rozproszony) i wieloplatformowy system programowania Mozarta Oz
- Object Pascal (imperatywne, zorientowane obiektowo (oparte na klasach))
- Perl (imperatywne, funkcjonalne (nie może być czysto funkcjonalne), zorientowane obiektowo, zorientowane na klasy, zorientowane aspektowo (poprzez moduły))
- PHP (imperatywne, obiektowe, funkcjonalne (nie może być czysto funkcjonalne))
- Pike (interpretowany, ogólnego przeznaczenia, wysokopoziomowy, wieloplatformowy, dynamiczny język programowania)
- Prograph (przepływ danych, obiektowy (oparty na klasach), wizualny)
- Python (funkcjonalny, skompilowany, interpretowany, zorientowany obiektowo (oparty na klasach), imperatyw, metaprogramowanie, rozszerzenie, nieczysty, tryb interaktywny, iteracyjny, refleksyjny, skryptowy)
- R (tablica, interpretowana, nieczysta, tryb interaktywny, oparty na listach, obiektowy oparty na prototypach, skrypty)
- Rakieta (funkcjonalna, imperatywna, obiektowa (oparta na klasach) i może być rozszerzana przez użytkownika)
- REBOL (funkcjonalne, imperatywne, obiektowe (oparte na prototypach), metaprogramowanie (dialektowe))
- Czerwony (funkcjonalne, imperatywne, obiektowe (oparte na prototypach), metaprogramowanie (dialektowe))
- ROOP (imperatywne, logiczne, obiektowe (oparte na klasach), oparte na regułach)
- Ruby (imperatywne, funkcjonalne, obiektowe (oparte na klasach), metaprogramowanie)
- Rust (współbieżny, funkcjonalny, imperatywny, obiektowy, generyczny, metaprogramowanie, skompilowany)
- Scala (funkcjonalna, obiektowa)
- Seed7 (imperatywne, obiektowe, ogólne)
- SISAL (współbieżny, przepływ danych, funkcjonalny)
- Arkusze kalkulacyjne (funkcjonalne, wizualne)
- Swift (zorientowany na protokoły, zorientowany obiektowo, funkcjonalny, imperatywny, o strukturze blokowej)
-
Tcl (funkcjonalne, imperatywne, obiektowe (oparte na klasach))
- Herbata (funkcjonalna, imperatywna, obiektowa (klasowa))
- Windows PowerShell (funkcjonalne, imperatywne, potokowe, zorientowane obiektowo (oparte na klasach))
- Język Wolfram
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 prawie wyłącznie używanych do obliczeń technicznych.
Języki inne niż angielski
- chiński PODSTAWOWY – chiński
- Fjölnir – islandzki
- Język Symbolique d'Enseignement – francuski
- Leksyko – hiszpański
- Rapira – rosyjski
- ezhil - tamilski
Języki obiektowe oparte na klasach
Języki programowania obiektowego oparte na klasach obsługują obiekty zdefiniowane przez ich klasę. Definicje klas zawierają dane składowe. Przekazywanie wiadomości jest pojęciem kluczowym (jeśli nie kluczowym pojęciem) w językach zorientowanych obiektowo.
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 wielokrotną wysyłką metody są definiowane przez funkcje generyczne . Istnieją wyjątki, w których pojedyncze metody wysyłania są funkcjami ogólnymi (np. system obiektów Bigloo ).
Wielokrotna wysyłka
- Wspólne seplenienie
- Cecil
- Dylan
- Julia (koncepcja „obiektu” nie występuje w Julii, ale język pozwala na wielokrotne wysyłanie różnych typów w czasie wykonywania)
Pojedyncza wysyłka
- ActionScript 3.0
- Aktor
- Ada 95 i Ada 2005 (język uniwersalny)
- APL
- BETA
- C++
- C#
- Cejlon
- Tlen (dawniej nazwany Chrome)
- Gdakanie
- Kobra
- Zimna fuzja
- Kędzior
- D
- Język specyfikacji aplikacji rozproszonych (DASL)
- Delphi Object Pascal
- mi
- GNU E
- eK
- Eiffla
- F-skrypt
- Fortran 2003
- Twierdza
- Gambas
- Język Kreatora Gier
- Port
- J
- Jawa
- LabVIEW
- Lawa
- Lua
-
Modula-2 (abstrakcja danych, ukrywanie informacji, silne typowanie, pełna modułowość)
- Modula-3 (dodano więcej funkcji obiektowych do Modula-2)
- Nemerle
- NetRexx
- Oberon-2 (pełna równoważność obiektowo-orientacyjna w oryginalny, mocno typowany, Wirthianowski sposób)
- Obiekt Pascal
- Obiekt REXX
- Objective-C (nadzbiór C dodający model obiektowy pochodzący z Smalltalka i składnię przekazywania wiadomości)
- OCaml
- Oz, system programowania Mozarta
- Perl 5
- PHP
- Szczupak
- Prograf
- Python (język interpretacyjny, opcjonalnie zorientowany obiektowo)
- Rewolucja (programista nie wybiera obiektów)
- Rubin
- Scala
- Spokojnie
- Simula (pierwszy język obiektowy, opracowany przez Ole-Johana Dahla i Kristen Nygaard )
- Smalltalk (czysta orientacja obiektowa, opracowana w Xerox PARC )
- KRĘCIĆ SIĘ
- Superzderzacz
- VBScript ( język makroskryptów pakietu Microsoft Office)
- Wizualne DataFlex
- Visual FoxPro
- Prolog wizualny
- X++
- Xojo
- XOTcl
Zorientowane obiektowo języki oparte na prototypach
Języki oparte na prototypach to języki obiektowe, w których usunięto rozróżnienie między klasami i instancjami:
- 1C: język programowania dla przedsiębiorstw
- Współbieżny język aktora (ABCL, ABCL/1, ABCL/R, ABCL/R2, ABCL/c+)
- Agora
- Cecil
-
ECMAScript
- ActionScript
- ECMAScript dla XML
- JavaScript (najpierw o nazwie Mocha, a następnie LiveScript)
- JScript
- Etoys w Squeak
- Io
- Lua
- MUCZEĆ
- NewtonScript
- Obliq
- r
- REBOL
- czerwony
- Self (pierwszy język oparty na prototypach, wywodzący się z Smalltalk )
- TADS
Języki reguł off-side
Języki reguł off-side oznaczają bloki kodu przez ich wcięcia .
Języki proceduralne
Języki programowania proceduralnego opierają się na koncepcji jednostki i zakresu (zakresu wyświetlania danych) instrukcji kodu wykonywalnego. Program proceduralny składa się z jednej lub więcej jednostek lub modułów, zakodowanych przez użytkownika lub dostarczonych w bibliotece kodów; każdy moduł składa się z jednej lub więcej procedur, zwanych również 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)
- MAŁA maszyna ALGOL jak język
- Alma-0
- BASIC (te najbardziej brakuje modułowości w (zwłaszcza) wersjach sprzed około 1990 roku)
- BCPL
- ROZKOSZ
- C
- C++ (C z obiektami i wieloma innymi, takimi jak generyki poprzez STL)
- C# (podobny do Java/C++)
- Cejlon
- CHŁOD
- ChucK (składnia podobna do C/Java, z nowymi elementami składni dla 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 )
- eK
-
ECMAScript
- ActionScript
- ECMAScript dla XML
- JavaScript (najpierw o nazwie Mocha, a następnie LiveScript)
- JScript
- Źródło
- Eiffla
- Naprzód
- Fortran (lepsza modułowość w późniejszych standardach)
- GAUS
- Udać się
- Port
- Hiperrozmowa
- Jawa
- JOWIALNY
- Julia
- Język H
- Lasso
- Modula-2 (zasadniczo oparty na modułach)
- Matematyka
- MATLAB
- Mesa
- MUMPS (pierwsze wydanie było bardziej modularne niż inne języki w tamtych czasach; od tego czasu standard stał się jeszcze bardziej modularny)
- Nemerle
- Nimi
- Oberon , Oberon-2 (ulepszone, mniejsze, szybsze, bezpieczniejsze następstwa dla Modula-2)
- OCaml
- Occam
- Wykusz
-
Pascal (następca ALGOL 60, poprzednik Modula-2)
- Darmowy 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
- Język Wolfram
- Microsoft Dynamics AX (X++)
Języki zapytań
Refleksyjny język
Języki refleksyjne pozwalają programom badać i ewentualnie modyfikować ich strukturę wysokiego poziomu w czasie wykonywania lub w czasie 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ę:
- Befung
- Cejlon
- Czar
- Gdakanie
- CLI
- Kobra
- Komponent Pascal BlackBox Component Builder
- Kędzior
- Szyfrować
- Delphi Object Pascal
- eK
- ECMAScript
- Emacs Lisp
- Eiffla
- Port
- Julia
- JVM
- Seplenienie
- Lua
- Maude system
- Oberon-2 – ETH System Oberon
- Cel C
- PCASTL
- Perl
- PHP
- Pico
- Poplog
- PowerShell
- Prolog
- Pyton
- REBOL
- czerwony
- Rubin
- Smalltalk (czysta orientacja obiektowa, pierwotnie z Xerox PARC )
- Snobol
- Tcl
- Język Wolfram
- XOTcl
- X++
- Xojo
Języki oparte na regułach
Języki oparte na regułach tworzą instancje reguł, gdy są aktywowane przez warunki w zestawie danych. Ze wszystkich możliwych aktywacji wybierany jest pewien zestaw i wykonywane są instrukcje należące do tych reguł. Języki oparte na regułach obejmują:
Języki skryptowe
„ Język skryptowy ” ma dwa pozornie różne, ale w rzeczywistości podobne znaczenia. W tradycyjnym sensie języki skryptowe są zaprojektowane do automatyzacji często używanych zadań, które zwykle obejmują wywoływanie lub przekazywanie poleceń do programów zewnętrznych. Wiele złożonych aplikacji udostępnia wbudowane języki, które umożliwiają użytkownikom automatyzację zadań. Te, które mają charakter interpretacyjny, są często nazywane językami skryptowymi.
Ostatnio wiele aplikacji ma wbudowane tradycyjne języki skryptowe, takie jak Perl czy Visual Basic , ale wciąż używanych jest sporo rodzimych języków skryptowych. Wiele języków skryptowych jest kompilowanych do kodu bajtowego, a następnie ten (zazwyczaj) kod bajtowy niezależny od platformy jest uruchamiany przez maszynę wirtualną (porównaj z wirtualną maszyną Java ).
- AppleScript
- AutoHotKey
- AutoIt
- AWK
- pne
- Powłoka fasoli
- Grzmotnąć
- Ch (wbudowany interpreter języka C/C++)
- CLI
- CLIST
- Zimna fuzja
-
ECMAScript
- ActionScript
- ECMAScript dla XML
- JavaScript (najpierw o nazwie Mocha, a następnie LiveScript)
- JScript
- Źródło
- Emacs Lisp
- WYKONANIE CMS
- WYKONANIE 2
- F-skrypt
- Język twórców gier (GML)
- ICI
- Io
- JASS
- Julia (nadal, skompilowana w locie do kodu maszynowego )
- 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
- Rubin
- CII
- Pogawędka
- Gwara
- sed
- Herbata
- Tcl
- TorqueScript
- VBScript
- WebDNA , dedykowany dla stron internetowych opartych na bazach danych
- Windows PowerShell ( CLI oparty na platformie .NET )
- Winbatch
- Wiele języków poleceń powłoki, takich jak powłoka Unix lub DIGITAL Command Language (DCL) w VMS, ma potężne możliwości tworzenia skryptów.
Języki oparte na stosie
Języki oparte na stosie to typ języka o strukturze danych, który jest oparty na strukturze danych stosu .
Języki synchroniczne
Synchroniczne języki programowania są zoptymalizowane pod kątem programowania reaktywnych systemów, systemów, które są często przerywane i muszą szybko reagować. Wiele takich systemów jest również nazywanych systemami czasu rzeczywistego i jest często używanych w systemach wbudowanych .
Przykłady:
Języki cieniowania
Język cieniowania jest to graficzny język programowania przystosowany do programowania efektów cieniowania. Takie formularze 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ą one zarówno wyższą abstrakcję sprzętową, jak i bardziej elastyczny model programowania niż poprzednie paradygmaty, w których zakodowano równania transformacji i cieniowania. Daje to programiście większą kontrolę nad procesem renderowania i dostarcza bogatszą zawartość przy niższych kosztach.
- Język Adobe Graphics Assembly (AGAL)
- Język asemblera ARB (asembler ARB)
- Język cieniowania OpenGL (GLSL lub glslang)
- Język cieniowania wysokiego poziomu (HLSL) lub język asemblera DirectX Shader
- Język PlayStation Shader (PSSL)
- Język cieniowania metali (MSL)
- Cg
- Shining Rock Shading Language (SRSL)
- Iskra
- Język cieniowania nitro
- Język cieniowania Godota
Renderowanie offline
Języki cieniowania używane w renderowaniu offline zapewniają maksymalną 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 Język cieniowania (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 bizon (wersja Yacc FSF)
- GNU Flex (wersja FSF Lexa)
- glex/gyacc (kompilator-kompilator GoboSoft do Eiffla)
- lex (Analiza leksykalna, z Bell Labs)
- M4
- Gramatyka wyrażeń parsowania (PEG)
- Prolog
- Emacs Lisp
- Seplenienie
- SableCC
- Schemat
- yacc (kolejny kompilator-kompilator z Bell Labs)
- JavaCC
Języki systemowe
Te języki programowania systemu są dla niskopoziomowych zadań, takich jak zarządzanie pamięcią i zarządzania 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, co zwykle wymaga innych podejść programistycznych w porównaniu z oprogramowaniem aplikacyjnym.
Oprogramowanie systemowe to oprogramowanie komputerowe przeznaczone do obsługi i sterowania sprzętem komputerowym oraz do zapewnienia platformy do uruchamiania oprogramowania aplikacyjnego. 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 | Burroughs Corporation | 1961 | ALGOL 60 | MCP |
PL/I | IBM , UDOSTĘPNIJ | 1964 | ALGOL 60, FORTRAN, trochę COBOL | Multiki |
PL360 | Niklaus Wirth | 1968 | ALGOL 60 | ALGOL W |
C | Dennis Ritchie | 1969 | BCPL | Większość jąder systemu operacyjnego , w tym Windows NT i większość systemów uniksopodobnych |
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 | CP-6 |
SYMBOL | CDC | 197x | JOWIALNY | podsystemy 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 systemu operacyjnego, kompilatory, gry, symulacje, CubeSat , kontrola ruchu lotniczego i awionika |
D | Cyfrowy Mars | 2001 | C++ | Wiele domen |
Nimi | Andreas Rumpf | 2008 | Ada , Modula-3 , Lisp , C++ , Object Pascal , Python , Oberon | Jądra systemu operacyjnego, kompilatory, gry |
Rdza | Badania Mozilli | 2010 | C++ , Haskell , Erlang , Ruby | Silnik układu serwo , Redox OS |
Szybki | Apple Inc. | 2014 | C , Cel-C , Rdza | macOS , tworzenie aplikacji na iOS |
Zig | Andrzeja Kelleya | 2016 | C , C++ , LLVM IR , Go , Rust , JavaScript | Jako zamiennik C |
Języki transformacji
Języki wizualne
Języki programowania wizualnego pozwalają użytkownikom określać programy w sposób dwuwymiarowy (lub więcej), zamiast jako jednowymiarowe ciągi tekstowe, za pomocą układów graficznych różnych typów. Niektóre języki programowania przepływu danych są również językami wizualnymi.
- Analityka
- Blokowo
- Clickteam Fusion
- DRAKON
- Fabrik
- G (używany w LabVIEW )
- Konik polny
- Lawa
- Limnor
- Maks.
- NXT-G
- Rys
- Prograf
- Czyste dane
- Kompozytor kwarcowy
- Scratch (napisany i oparty na Squeak , wersja Smalltalk )
- Pstryknąć!
- Simulink
- Arkusze kalkulacyjne
- Przepływ stanu
- Podtekst
- ToonTalk
- VEE
- VisSim
- Wwww
- XOD
- EICASLAB
Języki Wirth
Informatyk Niklaus Wirth zaprojektował i zaimplementował kilka wpływowych języków.
- ALGOL W
- Euler
-
Moduły
-
Modula-2 , Modula-3 , warianty
- Wariant Obliq Modula 3
-
Modula-2 , Modula-3 , warianty
- Oberon (Oberon, Oberon-07, Oberon-2)
-
Pascal
- Object Pascal (nazwa parasola dla Delphi , Free Pascal , Oxygene , innych)
Języki oparte na XML
Są to języki oparte lub działające na XML .
- Mrówka
- C
- ECMAScript dla XML
- MXML
- LZX
- XAML
- XPath
- XZapytanie
- XProc
- Rozszerzalne przekształcenia języka arkusza stylów ( XSLT )
Zobacz też
- Paradygmat programowania
- IEC 61131-3 – standard dla języków programowalnych sterowników logicznych (PLC)
- Edukacyjny język programowania
- Ezoteryczny język programowania