유형별 프로그래밍 언어 목록

List of programming languages by type

이것은 유형별로 분류된 주목할 만한 프로그래밍 언어 목록입니다.

프로그래밍 언어에 대한 가장 중요한 분류 체계는 없습니다.따라서 대부분의 경우 언어는 여러 제목 아래에 나열됩니다(이 점에 대해서는 아래의 "다중 문자의 언어" 참조).

배열 언어

배열 프로그래밍(벡터 또는 다차원) 언어는 벡터, 매트릭스고차원 배열에 투명하게 적용되도록 스칼라 연산을 일반화합니다.

어셈블리 언어

어셈블리 언어기계어에 직접 대응합니다(아래 참조).단, 개별 문장과 개별 명령 사이에 1-1 매핑이 없을 수 있으므로 기계 코드 명령은 인간이 이해할 수 있는 형태로 나타납니다.어셈블리 언어를 사용하면 프로그래머가 심볼 주소를 사용할 수 있으며, 어셈블러는 이를 절대 주소 또는 재배치 가능한 주소로 변환합니다.대부분의 어셈블러는 매크로와 심볼 상수도 지원합니다.

저작 언어

오서링 언어는 컴퓨터 전문가가 아닌 사람이 튜토리얼, 웹 사이트 및 기타 대화형 컴퓨터 프로그램을 쉽게 만들 수 있도록 설계된 프로그래밍 언어입니다.

연결형 프로그래밍 언어

연결형 프로그래밍 언어는 포인트 프리 컴퓨터 프로그래밍 언어이며, 여기서 모든 식은 함수를 나타내며, 병치함수 [1]구성을 나타냅니다.연결 프로그래밍은 다른 프로그래밍 스타일에서 흔히 볼 수 있는 함수 애플리케이션서브루틴을 구축하는 기본 방법인 함수 구성으로 대체합니다.

제약 조건 프로그래밍 언어

제약조건 프로그래밍 언어는 변수 간의 관계가 제약조건으로 표현되는 선언적 프로그래밍 언어입니다.선언된 모든 제약 조건을 충족하는 변수의 값을 찾는 것으로 실행을 계속합니다.

명령줄 인터페이스 언어

명령줄 인터페이스(CLI) 언어는 배치 언어 또는 작업 제어 언어라고도 합니다.예:

컴파일된 언어

이들은 일반적으로 컴파일러에 의해 처리되는 언어이지만 이론적으로는 모든 언어를 컴파일 또는 [citation needed]해석할 수 있습니다.

동시 언어

메시지 전달 언어는 동시성을 위한 언어 구성을 제공합니다.Java와 같은 주류 언어에서 동시성을 위한 주요 패러다임은 공유 메모리 동시성입니다.메시지 전달을 사용하는 동시 언어들은 일반적으로 통신 순차 프로세스(CSP)나 µ-calculus 등의 프로세스 계산에서 영감을 받았습니다.

  • Ada – 다목적 언어
  • Alef – 스레드와 메시지 전달을 동시에 사용하는 언어. Bell Labs의 Plan 9 이전 버전에서 시스템 프로그래밍에 사용
  • Ateji PX – 병렬 처리를 위한 Java 언어 확장
  • 발레리나 – 마이크로 서비스를 구현 및 조정하기 위해 설계된 언어입니다.메시지 기반 병렬 우선 동시성 모델을 제공합니다.
  • ChucK – 오디오용 도메인별 프로그래밍 언어, 동시성 및 타이밍 정밀 제어
  • Cilk동시 C
  • C' – C# 확장 연구 언어인 C Omega는 비동기 통신을 사용합니다.
  • ClojureJava 가상 머신의 리스프 방언
  • 예배당
  • 공동 배열 포트란
  • 동시 파스칼 (Brinch-Hansen)
  • 카레시
  • E – 약속을 사용하여 교착 상태가 발생하지 않도록 합니다.
  • Eiffel (SCOUP 메커니즘을 통한 심플한 동시 객체 지향 계산)
  • Elixir(Erlang VM에서 실행)
  • 에메랄드– 스레드 및 모니터 사용
  • Erlang : 공유하지 않고 전달되는 비동기 메시지 사용
  • Gambit Scheme – 흰개미 라이브러리 사용
  • Go (골랑)
  • Haskell - 여러 머신에 걸친 동시, 분산 및 병렬 프로그래밍 지원
  • 자바
    • Java 참여 – Java 기반의 동시 언어
    • X10
  • 줄리아.
  • Joule – 데이터 흐름 언어, 메시지 전달로 통신
  • 랩뷰
  • 림보Alef의 친척으로, Inferno(운영 체제)에서 시스템 프로그래밍에 사용됩니다.
  • MultiLisp병렬 처리를 지원하도록 확장된 스킴 바리안트
  • OCaml
  • ocsamCommunicating Sequential Processes(CSP)의 영향을 많이 받습니다.
  • 오크
  • Oz – 다중 문자 변환 언어, 공유 상태 및 메시지 전달 동시성 및 미래 지원, 모차르트 프로그래밍 시스템 크로스 플랫폼 Oz
  • P
  • Pict – 기본적으로 Milner의 µ-calculus 실행 가능 구현
  • Python — 스레드 기반 병렬 처리 및 프로세스 기반 병렬[9] 처리 사용
  • Scala – JVM에 Erlang 스타일의 액터 구현
  • Sequence L – 완전 기능성, 자동 병렬화, 레이스 프리
  • SR – 리서치 언어
  • Unified Parallel C
  • XProc – XML 처리 언어, 동시 실행 가능

곱슬브래킷어

colly-bracket 또는 colly-bracket 프로그래밍 언어에는 colly-bracket 또는 bracke 문자를 사용하여 스테이트먼트블록을 정의하는 구문이 있습니다.이 구문은 BCPL(1966)에서 시작되어 C에 의해 보급되었습니다.많은 곱슬브래킷 언어는 C에서 유래하거나 C에서 강한 영향을 받습니다.컬리브래킷 언어의 예는 다음과 같습니다.

데이터 흐름 언어

데이터 흐름 프로그래밍 언어는 프로그램을 지정하기 위해 데이터 흐름의 (보통 시각적인) 표현을 사용합니다.이산 이벤트에 대응하거나 데이터 스트림을 처리하는 데 자주 사용됩니다.데이터 플로우 언어의 예는 다음과 같습니다.

데이터 지향 언어

데이터 지향 언어는 한 집합을 다른 [citation needed]집합에 매핑하는 개체 관계 테이블로 설명된 관계를 검색하고 조작하는 강력한 방법을 제공합니다.데이터 지향 언어의 예는 다음과 같습니다.

의사결정 테이블 언어

의사결정표는 어떤 언어로든 프로그램을 작성하기 전에 논리를 명확히 하기 위한 보조 수단으로 사용할 수 있지만, 1960년대에는 주요 논리가 의사결정표의 형태로 직접 표현되는 다음과 같은 많은 언어가 개발되었습니다.

선언적 언어

선언적 언어는 제어 흐름을 자세히 설명하지 않고 계산의 논리를 표현합니다.선언형 프로그래밍은 명령형 프로그래밍 언어를 통한 명령형 프로그래밍과 대조적이며, 여기서 제어 흐름은 직렬 순서(임페리얼)로 지정됩니다.(순수) 함수논리 기반 프로그래밍 언어도 선언적이며 선언적 카테고리의 주요 하위 카테고리를 구성한다.이 섹션에서는 이러한 서브카테고리에 포함되지 않은 추가 예를 보여 줍니다.

삽입 가능한 언어

소스 코드 내

소스 임베디드 가능 언어는 자유 형식의 텍스트(대부분 웹 페이지) 안에 작은 실행 가능 코드 조각을 포함합니다.

클라이언트 측 임베디드 언어는 브라우저 또는 대상 클라이언트의 기능에 의해 제한됩니다.서버의 재접촉을 필요로 하지 않고 웹 페이지에 역동성을 제공하는 것을 목적으로 하고 있습니다.

서버측의 임베디드 언어는, 거의 모든 언어를 서버에 짜넣을 수 있기 때문에, 한층 더 유연합니다.서버측 코드의 fragment를 Web 페이지에 짜넣는 것은, 동적으로 추가 마크업을 생성하는 것을 목적으로 하고 있습니다.페이지가 제공되면 코드 자체는 없어져 출력으로 대체됩니다.

서버측

  • PHP
  • VBScript
  • SMX – 웹 페이지 전용
  • TclNaviServer 서버 측 및 전자업계 시스템에서 필수적인 컴포넌트
  • WebDNA – 데이터베이스 기반 웹 사이트 전용

위의 예는 특히 이 목적을 위한 것입니다.Erlang, Scala, Perl, Ring 및 Ruby와 같은 많은 다른 언어들을 적용할 수 있습니다(예를 들어 Apache 모듈로 만드는 것).

클라이언트 측

오브젝트 코드 내

컴파일된 실행 가능한 코드에 다양한 동적 또는 스크립트 언어를 포함할 수 있습니다.기본적으로 언어 인터프리터의 오브젝트 코드를 실행 파일에 링크해야 합니다.그 후 임베디드 언어의 소스 코드 fragment를 문자열로서 평가 함수에 건네줄 수 있다.사용자가 소스 코드를 입력하면 응용 프로그램 제어 언어를 이와 같이 구현할 수 있습니다.통역이 적은 언어를 사용하는 것이 좋습니다.

교육용 프로그래밍 언어

언어는 주로 프로그래밍의 교육과 학습을 목적으로 개발되었습니다.

난해한 언어

난해한 프로그래밍 언어는 컴퓨터 프로그래밍 언어 디자인의 경계를 테스트하거나 개념 증명 또는 농담으로 설계된 프로그래밍 언어입니다.

확장 언어

확장 프로그래밍 언어는 다른 프로그램에 포함되어 확장 스크립트에서 해당 기능을 사용하는 데 사용되는 언어입니다.

제4세대 언어

4세대 프로그래밍 언어는 데이터베이스 시스템을 중심으로 구축된 고급 언어입니다.일반적으로 상업적인 환경에서 사용됩니다.

기능 언어

함수형 프로그래밍 언어는 프로그램과 서브루틴을 수학적 함수로 정의하고 이를 1등급으로 취급합니다.기능적 언어라고 불리는 많은 언어들이 명령적 기능을 포함하는 "불순한" 언어입니다.많은 함수 언어는 수학적 계산 도구와 연결되어 있습니다.기능 언어는 다음과 같습니다.

순수하다

불순물

하드웨어 설명 언어

전자 공학에서 하드웨어 기술 언어(HDL)는 전자 회로, 그리고 가장 일반적으로 디지털 논리 회로의 구조, 설계 및 작동을 기술하는 데 사용되는 특수 컴퓨터 언어입니다.업계에서 가장 널리 사용되고 잘 지원되는 HDL은 VerilogVHDL입니다.하드웨어 설명 언어에는 다음이 포함됩니다.

아날로그 회로 설계용 HDL

  • Verilog-AMS(아날로그 및 혼합 시그널용 Verilog)
  • VHDL-AMS(아날로그/혼합 시그널 확장 기능을 가진 VHDL)

디지털 회로 설계용 HDL

명령어

명령형 프로그래밍 언어는 다중 파라다임이며 다른 분류에 나타날 수 있습니다.다음은 명령 패러다임을 따르는 프로그래밍 언어 목록입니다.

인터랙티브 모드 언어

인터랙티브 모드 언어는 일종의 셸로서 기능합니다.식이나 문장을 한 번에 하나씩 입력할 수 있으며 평가 결과가 즉시 표시됩니다.인터랙티브 모드는 Read-Eval-Print Loop(REPL; 읽기 평가 인쇄 루프)라고도 불립니다.

통역 언어

인터프리터 언어란 인터프리터에 의해 소스 코드 형식에서 프로그램이 실행될 수 있는 프로그래밍 언어입니다.이론적으로, 어떤 언어든 컴파일되거나 해석될 수 있기 때문에, 해석된 언어라는 용어는 일반적으로 컴파일된 언어라기보다는 해석된 언어를 가리킨다.

반복 언어

반복 언어는 생성기 주위에서 구축되거나 생성기를 제공합니다.

메모리 관리 유형별 언어

가비지 수집 언어

GC(Garbage Collection)는 자동 메모리 관리의 한 형태입니다.가비지 컬렉터는 프로그램에 의해 할당되었지만 더 이상 사용되지 않는 메모리를 회수하려고 합니다.

수동 메모리 관리 기능을 갖춘 언어

옵션인 수동 메모리 관리 기능을 갖춘 언어

  • Ada 구현은 가비지 컬렉션을 제공하기 위해 필요하지 않지만 언어 의미론이 이를 지원하며 많은 구현이 이를 포함합니다.
  • D는 프로그래머에게 가비지 컬렉터를 [14]완전히 비활성화하는 기능을 포함하여 자신의 가비지 컬렉터에 대한 완전한 제어를 제공합니다.
  • Nim은 보통 설정에 따라 디폴트로 가비지 수집 또는 참조 카운트가 되지만 프로그래머는 스위치를 사용할 수 있습니다.--mm:none수동으로 [15]메모리 할당을 해제합니다.
  • Objective-CObjective-C++는 수동 메모리 관리 대신 옵션 참조 카운트 및 가비지 수집을 지원합니다(단, 가비지 컬렉터는 Apple에 의해 폐지되었습니다).
  • Rust는 옵션인 참조 카운트를 지원하지만 수동 메모리 관리를 권장합니다.
  • Vala는 기본적으로 참조 카운트를 사용하지만 사용자가 [16]원할 경우 메모리를 수동으로 관리할 수 있습니다.

결정론적 메모리 관리를 하는 언어

자동 참조 카운트(ARC)가 있는 언어

목록 기반 언어 – LISP

목록 기반 언어는 목록 데이터 구조를 기반으로 하는 데이터 구조 언어의 한 유형입니다.

작은 언어

작은 언어들[19] 전문화된 문제 영역에 도움이 됩니다.

  • awk : 텍스트파일 조작에 사용됩니다.
  • Comet – 리소스 할당스케줄링같은 영역에서 복잡한 조합 최적화 문제를 해결하기 위해 사용됩니다.
  • sed – 텍스트 해석 및 변환
  • SQL – 일부 키워드만 포함되며 완전한[a] 프로그래밍 언어에 필요한 모든 구조는 아닙니다.많은 데이터베이스 관리 시스템은 SQL을 확장하여 저장 프로시저 언어로서 추가 구조를 사용합니다.

논리 기반 언어

논리 기반 언어는 솔루션을 얻기 위한 단계 집합이 아니라 솔루션에 필요한 속성 집합을 지정합니다.

프로그래밍 패러다임에 따른 주목할 만한 언어는 다음과 같습니다.

기계어

기계어는 컴퓨터의 CPU로 직접 실행할 수 있습니다.일반적으로 비트 패턴으로 표현되며, 보통 8진수 또는 16진수로 표현됩니다.각 비트 패턴에 따라 CPU 내의 회로는 하드웨어의 기본 동작 중 하나를 수행합니다.특정 전기 입력(마이크로프로세서의 CPU 패키지 핀 등)의 활성화와 CPU 상태 값의 논리적 설정은 프로세서의 계산을 제어합니다.개개의 기계어는 프로세서 패밀리에 고유합니다.해당 프로세서에 대응한 추가 하드웨어가 없는 한 프로세서 패밀리의 기계어 코드는 다른 패밀리의 프로세서에서 직접 실행할 수 없습니다(예를 들어 DEC VAX 프로세서에는 PDP-11 호환성 모드가 포함되어 있습니다).이것들은, 서드 [b]파티가 아니고, 항상 CPU 개발자에 의해서 정의됩니다.대부분의 경우 프로세서의 어셈블리 언어인 심볼 버전도 개발자에 의해 정의됩니다.일반적으로 사용되는 기계 코드 명령 집합은 다음과 같습니다.

매크로 언어

텍스트 대체 매크로 언어

매크로 언어는 소스 코드 파일을 다른 파일로 변환합니다."매크로"는 본질적으로 긴 텍스트로 확장되는 짧은 텍스트이며(위생적인 매크로와 혼동하지 않음), 매개 변수 대체와 함께 사용될 수 있습니다.이들은 종종 소스 코드를 전처리하는 데 사용됩니다.프리프로세서는 파일 포함과 같은 기능을 제공할 수도 있습니다.

매크로 언어는 특별히 라벨이 부착된 코드 영역(예:#C 프리프로세서의 경우).그렇지 않을 수도 있지만, 이 경우 문자열 리터럴에 내장된 매크로를 확장(예를 들어)하는 것은 바람직하지 않은 경우가 많기 때문에 구문에 대한 기본적인 인식이 여전히 필요합니다.이러한 경우에도 여러 언어에 적용할 수 있는 경우가 많습니다.완전한 기능을 갖춘 PHP와 같은 소스 포함 언어와는 대조적입니다.

  • cpp(C 프리프로세서)
  • m4(원래 AT&T에서 Unix에 번들)
  • ML/I(범용 매크로 프로세서)

응용 프로그램 매크로 언어

TclECMAScript 등의 스크립트 언어(ActionScript, ECMAScript for XML, JavaScript, JScript)가 응용 프로그램에 포함되어 있습니다.m4와 같은 텍스트 대체 매크로와는 다소 다른 의미로 이러한 매크로를 "매크로 언어"라고 부르기도 합니다.

메타프로그래밍 언어

메타프로그래밍은 자신을 포함한 다른 프로그램을 데이터로서 쓰거나 조작하거나 컴파일실행수행되는 작업의 일부를 수행하는 프로그램을 작성하는 것입니다.많은 경우 프로그래머가 모든 코드를 수동으로 작성할 때와 같은 시간 내에 더 많은 작업을 수행할 수 있습니다.

다문자어

다중 문자의 언어는 하나 이상의 프로그래밍 패러다임을 지원합니다.이를 통해 프로그램에서 둘 이상의 프로그래밍 스타일을 사용할 수 있습니다.목표는 프로그래머가 작업에 가장 적합한 도구를 사용할 수 있도록 하는 것이며, 어떤 패러다임도 모든 문제를 가장 쉽고 효율적으로 해결할 수 없다는 것을 인정하는 것입니다.

  • 1C: 엔터프라이즈 프로그래밍 언어(범용, 필수, 객체 지향, 프로토타입 기반, 기능)
  • Ada(동시, 분산, 범용(템플릿 메타프로그래밍), 필수, 객체 지향(클래스 기반)
  • ALF(기능, 논리)
  • Alma-0(제한, 명령, 논리)
  • APL(기능, 필수, 객체 지향(클래스 기반))
  • 베타(기능, 필수, 객체 지향(클래스 기반))
  • C++(범용, 필수, 객체 지향(클래스 기반), 기능, 메타프로그래밍)
  • C#(범용, 필수, 객체 지향(클래스 기반), 기능, 선언형)
  • Ceilon(일반, 명령, 객체 지향(클래스 기반), 기능, 선언형)
  • ChucK(임페셔널, 객체 지향, 시간 기반, 동시, 온 더 플라이)
  • 코브라(일반, 명령, 객체 지향(클래스 기반), 기능, 계약상)
  • 공통 리스프(기능성, 명령성, 객체 지향(클래스 기반), 애스펙트 지향(사용자가 논리 등 패러다임을 추가할 수 있음)
  • (기능성, 명령성, 객체 지향(클래스 기반), 메타프로그래밍)
  • 카레(동시, 기능, 논리)
  • D(일반, 명령, 기능, 객체 지향(클래스 기반), 메타프로그래밍)
  • Dellphi 객체 파스칼(일반, 명령, 객체 지향(클래스 기반), 메타프로그래밍)
  • Dylan(기능성, 객체 지향(클래스 기반))
  • eC(일반, 필수, 객체 지향(클래스 기반))
  • ECMAScript(기능, 필수, 객체 지향(프로토타입 기반))
  • Eiffel(임페리얼, 객체 지향(클래스 기반), 범용, 기능(에이전트), 동시(SCoop))
  • F#(기능, 범용, 객체 지향(클래스 기반, 언어 지향)
  • Fantom(기능, 객체 지향(클래스 기반))
  • , 골랑 (임페리얼, 절차상)
  • Groovy(기능, 객체 지향(클래스 기반), 필수, 절차)
  • 하버
  • J(기능, 필수, 객체 지향(클래스 기반))
  • Julia (임페리얼, 복수 디스패치("객체 지향")), 기능, 메타프로그래밍)
  • LabVIEW(시각, 데이터 흐름, 동시, 모듈러, 기능, 객체 지향, 스크립트)
  • 용암(객체 지향(클래스 기반), 시각)
  • Lua(기능, 필수, 객체 지향(프로토타입 기반))
  • 수은(기능성, 논리성, 객체 지향)
  • Metaobject 프로토콜(개체 지향(클래스 기반, 프로토타입 기반))
  • Nemerle(기능, 객체 지향(클래스 기반), 필수, 메타프로그래밍)
  • Objective-C(명제적, 객체 지향(클래스 기반, 반사적))
  • OCaml(기능, 필수, 객체 지향(클래스 기반), 모듈러형)
  • Oz(기능(평가: 열성, 게으름), 논리, 제약, 명령, 객체 지향(클래스 기반), 동시, 분산 및 모차르트 프로그래밍 시스템 크로스 플랫폼 Oz
  • 오브젝트 파스칼(임페리얼, 오브젝트 지향(클래스 기반))
  • Perl(임페리얼, 기능성(완전히 기능할 수 없음), 객체 지향, 클래스 지향, 애스펙트 지향(모듈 경유)
  • PHP(임페셔널, 객체 지향, 기능(완전히 기능할 수 없음))
  • Pike (인터프리터드, 범용, 고급, 크로스 플랫폼, 다이내믹 프로그래밍 언어)
  • Programaph(데이터플로우, 객체 지향(클래스 기반),
  • Python(기능, 컴파일, 해석, 객체 지향(클래스 기반), 명령, 메타프로그래밍, 확장, 불순, 대화형 모드, 반복, 반사, 스크립트)
  • R(어레이, 인터프리터, 불순, 인터랙티브 모드, 목록 기반, 객체 지향 프로토타입 기반, 스크립팅)
  • 라켓(기능, 필수, 객체 지향(클래스 기반)으로 사용자가 확장할 수 있음)
  • REBOL(기능성, 필수성, 객체 지향성(프로토타입 기반), 메타프로그래밍(투시형))
  • 빨간색(기능성, 명령형, 객체 지향(프로토타입 기반), 메타프로그래밍(투시형))
  • RUP(임페리얼, 로직, 객체 지향(클래스 기반), 규칙 기반)
  • (임페리얼, 기능, 객체 지향(클래스 기반), 메타프로그래밍, 선언형, 자연)
  • Ruby(임페리얼, 기능, 객체 지향(클래스 기반), 메타프로그래밍)
  • Rust(동시, 기능, 필수, 객체 지향, 범용, 메타프로그래밍, 컴파일)
  • Scala(기능, 객체 지향)
  • Seed7(임페리얼, 객체 지향, 범용)
  • SISAL(동시, 데이터 흐름, 기능)
  • 스프레드시트(기능, 비주얼)
  • Swift(프로토콜 지향, 객체 지향, 기능, 필수, 블록 구조)
  • Tcl(기능, 필수, 객체 지향(클래스 기반))
    • (기능, 필수, 객체 지향(클래스 기반)
  • Windows PowerShell (기능, 필수, 파이프라인, 객체 지향(클래스 기반))
  • 울프람어

수치 분석

C나 Python과 같은 여러 범용 프로그래밍 언어도 기술 컴퓨팅에 사용되며, 이 목록은 기술 컴퓨팅에 거의 독점적으로 사용되는 언어에 초점을 맞추고 있습니다.

영어 이외의 언어

객체 지향 클래스 기반 언어

클래스 기반 객체 지향 프로그래밍 언어는 클래스에 의해 정의된 객체를 지원합니다.클래스 정의에는 멤버 데이터가 포함됩니다.메시지 전달은 객체 지향 언어에서 주요 개념은 아니더라도 핵심 개념입니다.

일부 인수의 클래스에 의해 파라미터화된 다형 함수는 일반적으로 메서드라고 불립니다.단일 디스패치를 사용하는 언어에서는 일반적으로 클래스에는 메서드 정의도 포함됩니다.복수의 디스패치가 있는 언어에서는, 메서드는 범용 함수에 의해서 정의됩니다.단일 디스패치 방식이 범용 기능인 경우는 예외입니다(: Bigloo의 객체 시스템).

복수 디스패치

단일 디스패치

객체 지향 프로토타입 기반 언어

프로토타입 기반 언어는 클래스와 인스턴스의 구분이 제거된 객체 지향 언어입니다.

오프사이드 규칙 언어

오프사이드 규칙 언어는 코드 블록을 들여쓰기로 나타냅니다.

절차 언어

절차 프로그래밍 언어는 실행 가능한 코드 문의 단위 및 범위(데이터 표시 범위)의 개념을 기반으로 합니다.절차 프로그램은 하나 이상의 유닛 또는 모듈(사용자 코드화 또는 코드 라이브러리에 제공됨)로 구성됩니다. 각 모듈은 언어에 따라 함수, 루틴, 서브루틴 또는 메서드라고도 불리는 하나 이상의 프로시저로 구성됩니다.절차 언어의 예는 다음과 같습니다.

쿼리 언어

반사 언어

반사 언어를 사용하면 프로그램이 런타임 또는 컴파일 시 상위 수준의 구조를 검사하고 수정할 수 있습니다.이는 Smalltalk와 같은 고급 가상 시스템 프로그래밍 언어에서 가장 흔하지만 C와 같은 하위 프로그래밍 언어에서는 덜 일반적입니다.반영을 지원하는 언어 및 플랫폼:

규칙 기반 언어

규칙 기반 언어는 데이터 집합의 조건에 따라 활성화되면 규칙을 인스턴스화합니다.가능한 모든 액티베이션 중 몇 가지 세트가 선택되고 이러한 규칙에 속하는 스테이트먼트가 실행됩니다.규칙 기반 언어에는 다음이 포함됩니다.[citation needed]

스크립트 언어

"스크립트 언어"는 겉보기에는 다르지만 사실은 비슷한 두 가지 의미를 가지고 있다.전통적인 의미에서 스크립트 언어는 자주 사용되는 작업을 자동화하도록 설계되어 있습니다.이 작업은 일반적으로 외부 프로그램에 대한 명령 호출 또는 전달을 수반합니다.많은 복잡한 애플리케이션 프로그램이 사용자가 작업을 자동화할 수 있는 내장 언어를 제공합니다.인터프리터티브한 것을 스크립트 언어라고 부릅니다.

최근에는 Perl이나 Visual Basic과 같은 기존 스크립트 언어를 내장하고 있는 어플리케이션도 많지만 아직 네이티브 스크립트 언어가 많이 사용되고 있습니다.많은 스크립트 언어가 바이트 코드로 컴파일된 후 (보통) 플랫폼에 의존하지 않는 이 바이트 코드가 (Java 가상 머신과 비교하여) 가상 머신을 통해 실행됩니다.

스택 기반 언어

스택 기반 언어는 스택 데이터 구조를 기반으로 하는 데이터 구조 언어입니다.

동기 언어

동기 프로그래밍 언어는 자주 중단되고 신속하게 응답해야 하는 시스템인 사후 대응 시스템을 프로그래밍하도록 최적화되어 있습니다.이러한 많은 시스템은 실시간 시스템이라고도 하며 임베디드 시스템에서 자주 사용됩니다.

예:

음영 언어

쉐이딩 언어는 셰이더 효과를 프로그래밍하도록 조정된 그래픽 프로그래밍 언어입니다.이러한 언어 형식은 보통 "색상" 및 "일반"과 같은 특수한 데이터 유형으로 구성됩니다.3D 컴퓨터 그래픽의 다양한 타깃 시장 때문에.

실시간 렌더링

변환 및 음영 방정식을 하드 코드화한 이전의 패러다임보다 더 높은 하드웨어 추상화와 더 유연한 프로그래밍 모델을 제공합니다.이를 통해 프로그래머는 렌더링 프로세스를 보다 효과적으로 제어할 수 있으며 보다 적은 오버헤드로 보다 풍부한 콘텐츠를 제공할 수 있습니다.

오프라인 렌더링

오프라인 렌더링에 사용되는 음영 언어는 최대 이미지 품질을 생성합니다.이러한 셰이더를 처리하려면 시간이 걸립니다.사실적인 결과를 낼 수 있기 때문에 필요한 계산 능력이 비쌀 수 있습니다.

구문 처리 언어

이러한 언어는 문맥이 없는 문법을 위한 어휘 분석기파서를 생성하는 데 도움이 됩니다.

시스템 언어

시스템 프로그래밍 언어는 메모리 관리 또는 작업 관리와 같은 낮은 수준의 작업을 위한 언어입니다.시스템 프로그래밍 언어는 일반적으로 시스템 프로그래밍에 사용되는 프로그래밍 언어를 말합니다. 이러한 언어는 시스템 소프트웨어를 작성하기 위해 설계되었으며, 일반적으로 애플리케이션 소프트웨어와 비교할 때 다른 개발 접근 방식을 필요로 합니다.

시스템 소프트웨어는 컴퓨터 하드웨어를 작동 및 제어하고 애플리케이션 소프트웨어를 실행하기 위한 플랫폼을 제공하도록 설계된 컴퓨터 소프트웨어입니다.시스템 소프트웨어에는 운영체제, 유틸리티 소프트웨어, 디바이스 드라이버, 컴파일러, 링커 등의 소프트웨어 카테고리가 포함됩니다.시스템 언어의 예는 다음과 같습니다.

언어 발신자 처음 등장한 영향을 받다 사용처
ESPOL 버로우즈 1961 알골 60 MCP
PL/I IBM, 공유 1964 ALGOL 60, FORTRAN, 일부 COBOL 멀티틱스
PL360 니클라우스 워스 1968 알골 60 알골 W
C 데니스 리치 1969 BCPL Windows NT 및 대부분의 Unix 유사 시스템을 포함한 대부분의 운영 체제 커널
PL/S IBM 196배 PL/I OS/360
블리스. 카네기 멜론 대학교 1970 알골 PL/I[27] VMS(포트)
PL/8 IBM 197배 PL/I AIX
PL/MP 및 PL/MI IBM 197배 PL/I CPF, OS/400
PL-6 허니웰 주식회사 197배 PL/I CP-6
심플 CDC 197배 즐겁다 NOS 서브시스템, 대부분의 컴파일러, FSE 에디터
C++ 비야른 스트루스트럽 1979 C, Simula 'C++ 어플리케이션[28]' 참조
아다 장 이치비아, S 터커 태프트 1983 ALGOL 68, Pascal, C++, 자바, 에펠 임베디드 시스템, OS 커널, 컴파일러, 게임, 시뮬레이션, 큐브샛, 항공 교통 관제 및 항전 장치
D 디지털 마스 2001 C++ 복수[29] 도메인
안드레아스 럼프 2008 Ada, Modula-3, Lisp, C++, 오브젝트 파스칼, Python, Oberon OS 커널, 컴파일러, 게임
모질라 리서치[30] 2010 C++, Haskell, Erlang, Ruby 서보 레이아웃 엔진, Redox OS
재빠르다 애플사 2014 C, Objective-C, Rust macOS, iOS 앱 개발[e]
지그 앤드류 켈리 2016 C, C++, LLVM IR, Go, Rust, JavaScript C의 대체품으로서
오딘 진저 빌 2016 Pascal, C, Go, Oberon-2, Newsquek, Jai, GLSL C의 대체 수단으로서

변환 언어

변환 언어는 특정 형식 언어로 지정된 소스 코드를 정의된 대상 형식 코드로 변환(변환)하는 데 사용됩니다.이는 후속 처리 루틴에 입력하기 위해 내부 결과를 채택하기 위해 보다 복잡한 슈퍼 시스템의 중간 구성요소에서 가장 일반적으로 사용됩니다.

비주얼 언어

비주얼 프로그래밍 언어를 사용하면 사용자는 다양한 유형의 그래픽 레이아웃을 통해 1차원 텍스트 문자열 대신 2차원(또는 그 이상) 방식으로 프로그램을 지정할 수 있습니다.일부 데이터 흐름 프로그래밍 언어도 시각 언어입니다.

워스어족

컴퓨터 과학자인 Niklaus Worth는 몇 가지 영향력 있는 언어를 설계하고 구현했습니다.

XML 기반 언어

이들은 XML을 기반으로 또는 XML을 기반으로 작동하는 언어입니다.

「 」를 참조해 주세요.

메모들

  1. ^ SQL 개체는 테이블이라고 하는 데이터베이스 레코드의 모음입니다.완전한 프로그래밍 언어는 런타임에 관계없이 알고리즘을 지정할 수 있습니다.따라서 알고리즘은 사용 가능한 결과를 생성하는 것을 고려할 수 있습니다.반면 SQL은 결과의 정확성을 나타내는 문장이 아니라 현재 수집, 즉 시스템에서 수중에 있는 데이터로 제한된 레코드만 선택할 수 있습니다.
  2. ^ 주목할 만한 예외는 소련/러시아 1801 시리즈 CPU로, 원래는 자체 국산 ISA를 사용했지만 나중에 정책 결정으로 PDP-11 호환되도록 재설계되었습니다.
  3. ^ a b 하위 모델은 나열되지 않고 기본 모델만 표시됩니다.
  4. ^ Julia에는 기존의 단일 디스패치 OO 시멘틱스를 사용하는 객체의 개념이 없으며, 런타임에 다른 유형의 보다 일반적인 다중 디스패치를 사용합니다.
  5. ^ Swift는 자동 참조 카운트를 사용합니다.

레퍼런스

  1. ^ "Christopher Diggins: What is a concatenative language". Drdobbs.com. 2008-12-31. Retrieved 2013-07-01.
  2. ^ "Kitten programming language".
  3. ^ "Lviv programming language".
  4. ^ "r3 programming language".
  5. ^ "Staapl programming language".
  6. ^ "Trith programming language".
  7. ^ "xs programming language".
  8. ^ "8th programming language".
  9. ^ 문서 the Python 표준 라이브러리 document 동시 실행
  10. ^ a b "Indentation based syntax · rsdn/nemerle Wiki". GitHub. Retrieved 2022-03-18.
  11. ^ "Solidity — Solidity 0.8.11 documentation".
  12. ^ "Beef Programming Language". Retrieved 2022-03-18.
  13. ^ "Frequently Asked Questions Odin Programming Language". Odin Programming Language. Retrieved 2022-03-18.
  14. ^ "Garbage Collection - D Programming Language". D Programming Language. Retrieved 2022-03-18.
  15. ^ "Nim's Memory Management". Retrieved 2022-03-18.
  16. ^ "Projects/Vala/ReferenceHandling - GNOME Wiki!". Retrieved 2022-03-21.
  17. ^ "Understanding Ownership - The Rust Programming Language". doc.rust-lang.org.
  18. ^ "Smart Pointers - The Rust Programming Language". doc.rust-lang.org.
  19. ^ Jon Bentley (AT&T) 1986년 8월 CACM 29 (8) "Little Languages", 그의 Programming Pearls 칼럼 페이지 711-721
  20. ^ "Procedural Macros for Generating Code from Attributes". doc.rust-lang.org.
  21. ^ "Canonware Onyx". Canonware.com. Archived from the original on March 13, 2017. Retrieved July 7, 2018.
  22. ^ Scabia, Marco. "What is AGAL". Adobe Developer Connection. Adobe. Retrieved 8 May 2018.
  23. ^ Hodorowicz, Luke (30 March 2015). "Shading Languages". www.shiningrocksoftware.com. Shining Rock Software. Retrieved 8 May 2018.
  24. ^ Foley, Tim; Hanrahan, Pat. "Spark: Modular, Composable Shaders for Graphics Hardware". Intel Software. ACM. Retrieved 8 May 2018.
  25. ^ "Nitrous FAQ". oxidegames.com. Retrieved 8 May 2018.
  26. ^ Linietsky, Juan; Manzur, Ariel. "Shading language – Godot Engine latest documentation". docs.godotengine.org. Godot community. Retrieved 8 May 2018.
  27. ^ Wulf, W.A.; Russell, D.B.; Haberman, A.N. (December 1971). "BLISS: A Language for Systems Programming". Communications of the ACM. 14 (12): 780–790. CiteSeerX 10.1.1.691.9765. doi:10.1145/362919.362936. S2CID 9564255.
  28. ^ "C++ Applications".
  29. ^ "Organizations using the D Language - D Programming Language".
  30. ^ "Mozilla Research". 1 January 2014.