위키프로젝트:컴퓨터 과학/프로그래밍 언어

현재 한국어 위키백과에 절대적으로 부족한 프로그래밍 개념과 언어 관련 페이지들에 대한 기준을 마련하고 채워 나가는 작업을 하려 합니다. --토끼군

참여자

편집

이 프로젝트에 참여하고 있다는 것을 표시하려면 {{위키프로젝트 프로그래밍 참가자}} 틀을 부착하시면 됩니다.

프로그래밍 언어

편집

페이지 이름

편집

기본적인 원칙은 이렇습니다.

  • "(프로그래밍 언어)"라는 접미사를 붙여서 페이지를 만드는 경우:
    • 실존하는 사람의 이름에서 따 온 프로그래밍 언어는 항상 붙입니다. (Eiffel 등)
    • 음역이 거의 불가능한 세 글자 이하의 두문자어들은 거의 대부분 붙입니다. (ABC, C, D 등)
    • 해당 언어의 영문 페이지가 동음이의 페이지로 연결되어 있을 경우 거의 대부분 붙입니다. (Forth 등)
    • 한국어에서 잘 알려진 이름(위성 이름이라든지……)과 겹칠 가능성이 매우 큰 이름도 붙입니다. (Io, Prolog, Perl 등)
  • 세 글자 이하의 두문자어를 제외한 모든 페이지 이름은 기호까지 최대한 음역합니다. (COBOL, FORTRAN 등)
    • "#"은 항상 "샤프"로 적습니다.
    • ".NET"은 항상 "닷넷"으로 적습니다.
  • 둘 이상의 단어가 CamelCase로 연결된 페이지 이름은 최대한 붙여 씁니다. (QBasic, ActionScript 등)
실제 이름 영문 이름 페이지 이름
ABAP ABAP ABAP
ABC ABC programming language ABC (프로그래밍 언어)
Ada Ada programming language 에이다 (프로그래밍 언어)
ALGOL ALGOL 알골 (프로그래밍 언어)
APL APL programming language APL (프로그래밍 언어)
  J J programming language J (프로그래밍 언어)
  K K programming language K (프로그래밍 언어)
AppleScript AppleScript 애플스크립트
Assembly Assembly language 어셈블리어
  x86 Assembly X86 assembly language x86 어셈블리 언어
AWK AWK programming language AWK
BASIC BASIC programming language 베이직
  GW-BASIC GW-BASIC GW-BASIC
  QBasic QBasic 큐베이직
  Quick BASIC QuickBASIC 퀵베이직
  Visual Basic Visual Basic 비주얼 베이직
  Visual Basic .NET Visual Basic .NET 비주얼 베이직 닷넷
  Applesoft BASIC en:Applesoft BASIC 애플소프트 베이직
  MSX BASIC en:MSX BASIC MSX 베이직
  Turbo BASIC en:Turbo Basic 터보 베이직
BCPL BCPL BCPL
C C programming language C (프로그래밍 언어)
C++ C plus plus C++
C# C Sharp C 샤프
Clipper Clipper programming language 클리퍼
COBOL COBOL 코볼
ColdFusion ColdFusion 콜드퓨전
CPL Combined Programming Language CPL (프로그래밍 언어)?
D D programming language D (프로그래밍 언어)
Dylan Dylan programming language 딜런 (프로그래밍 언어)
ECMAScript ECMAScript ECMA스크립트
  ActionScript ActionScript 액션스크립트
  JavaScript JavaScript 자바스크립트
  JScript JScript J스크립트
Eiffel Eiffel programming language 에펠 (프로그래밍 언어)
Erlang Erlang programming language 얼랭
Euphoria Euphoria programming language 유포리아 (프로그래밍 언어)
FORTRAN Fortran 포트란
Forth Forth programming language 포스 (프로그래밍 언어)
  PostScript PostScript 포스트스크립트
Haskell Haskell programming language 하스켈[* 1]
Java Java programming language 자바 (프로그래밍 언어)
  Groovy Groovy 그루비
io Io programming language 아이오 (프로그래밍 언어)
Lisp Lisp programming language 리스프
  Common Lisp (CL) Common Lisp 커먼 리스프
  Scheme Scheme programming language 스킴 (프로그래밍 언어)
Logo Logo programming language 로고 (프로그래밍 언어)
Lua Lua programming language 루아 (프로그래밍 언어)
ML ML programming language ML (프로그래밍 언어)
  Standard ML (SML) Standard ML -
  Ocaml Ocaml -
  F# F sharp programming language F 샤프 (프로그래밍 언어)
Modula-2 Modula-2 모듈라-2
Modula-3 Modula-3 모듈라-3
Object Pascal Object Pascal 오브젝트 파스칼
  Delphi Delphi programming language 델파이 (프로그래밍 언어)
Objective-C Objective-C 오브젝티브-C
Oz Oz programming language 오즈 (프로그래밍 언어)
Pascal Pascal programming language 파스칼 (프로그래밍 언어)
Perl Perl
PHP PHP PHP
PL/I PL/I PL/I
Prolog Prolog 프롤로그
PowerBuilder PowerBuilder 파워빌더
Python Python programming language 파이썬
  Boo Boo programming language 부 (프로그래밍 언어)
Ruby Ruby programming language 루비 (프로그래밍 언어)
Self Self programming language 셀프 (프로그래밍 언어)
Simula Simula 시뮬라
Smalltalk Smalltalk 스몰토크
SQL SQL SQL?
Tcl Tcl Tcl?
XSL Extensible Stylesheet Language XSL
  1. 예외적으로 하스켈은 Haskell Curry를 해스켈 커리라 부르기 때문에 붙이지 않습니다.

가장 참고가 될 만한 템플릿은 프랑스어 위키백과로, 객체지향/명령형/함수형/정의형/concurrent 식으로 분리해 놓고 있습니다.

프로그래밍 언어에 대한 일반적인 정보를 담는 데 사용합니다. 주의할 점은:

  • 프로그래밍 언어와 구현체가 밀접하게 결합된 경우도 있지만 (예를 들어 파이썬) 아닌 경우도 많습니다. (예를 들어 C++) 따라서 프로그래밍 언어 자체의 발전은 구현체의 발전과 별도로 서술해야 할 수도 있습니다.
  • 프로그래밍 언어의 버전은 표준 문서가 존재할 경우 그 문서의 버전을 기준으로 해 주세요. (예를 들어서 ISO/IEC C++ 2003)

예제코드

편집

가급적 예제코드를 넣어주세요.

프로그래밍 패러다임

편집

아래는 사용자:토끼군이 일단 대략적으로 만든 패러다임 및 언어의 분류입니다. 고칠 점은 토론을 쓰시거나 직접 고쳐 주세요.

  • 명령형 프로그래밍: 프로그램의 상태를 변화시키는 명령으로 이루어진 언어.
  • 선언형 프로그래밍: (일반적으로) 프로그램이 결과적으로 어떤 행동을 해야 할지 정하는 ‘선언’으로 이루어진 언어.
  • 순차적 프로그래밍: 실행의 흐름이 순차적으로 이루어지는 언어.
  • 절차적 프로그래밍: 프로그램이 연속적으로 어떤 일을 하는 프로시저 또는 함수들로 구성된 언어.
  • 객체지향 프로그래밍: 프로그램이 객체와 그 객체에 대해 적용되는 속성 및 행동으로 구성되는 언어.
  • 관점지향 프로그래밍: 일반적인 책임 구분을 넘어서는 문제를 관점(aspect)으로 추가적으로 모델링한 언어.
  • 일반적 프로그래밍: 자료형에 구애를 받지 않는 일반화된 프로그래밍이 가능한 언어.
  • 함수형 프로그래밍: 함수가 일반적인 값들과 동등하게 취급되는 언어. 람다 대수에 기반합니다.
  • 논리형 프로그래밍: 프로그램이 단언(assertion)과 목표(goal)로 구성되는 언어.
  • 제한형 프로그래밍: 변수 사이의 관계를 제한(constraint)을 통해 정의하는 언어.
  • 데이터 구조와 연관을 맺는 언어
    • 벡터 프로그래밍: 스칼라와 벡터, 행렬 등을 투명하게 접근하고 연산할 수 있는 언어.
    • 리스트 기반 프로그래밍 언어: 리스트 데이터 구조를 기반으로 하는 언어.
    • 스택 기반 프로그래밍 언어: 스택 데이터 구조를 기반으로 하는 언어.
  • 규칙 기반 프로그래밍: 어떤 특정한 조건(condition)이 일어 났을 때 수행할 특정한 동작, 즉 규칙(rule)으로 구성된 언어.
    • 사건 기반 프로그래밍: 비동기적으로 발생하는 사건(event)과 그 사건을 처리하는 처리자(handler)로 구성된 언어.
  • 병행 프로그래밍: 여러 프로그램의 흐름이 동시에 일어 나는 것을 지원하며 그 흐름을 제어할 방법을 지원하는 언어.
    • 분산 프로그래밍: 여러 프로그램의 흐름이 서로 독립적인 여러 개의 주체에 의해 일어나는 언어.
  • 파이프라인 프로그래밍 언어: 데이터를 순차적으로 변형시키는 여러 부분으로 이루어진 언어.
  • 투영적 프로그래밍(reflexive programming. 다른 번역어 있으면 알려 주세요): 실행 시간에 프로그램 자신의 고수준 구조를 접근할 수 있는 언어.
  • 문학적 프로그래밍: 소스 코드와 그 문서화가 유기적으로 결합된 언어.
  • 시각적 프로그래밍: 일차원적인 텍스트가 아닌 이차원 이상의 시각적인 방법으로 프로그래밍이 가능한 언어.
  • 매크로 프로그래밍 언어: 일반적인 텍스트 안에 삽입되어 동작하는 프로그래밍 언어. 전처리기도 여기에 속합니다.
  • 어셈블리어: 기계어와 직접적인 대응이 가능한 저수준 언어. 저급언어로 분류되는 언어들은 사실상 모두 여기에 해당합니다.
    • 기계어: CPU와 같은 특정한 기계 장치(또는 그를 흉내내는 simulator)가 바로 해석할 수 있는 언어.
  • 전문 영역 언어: 특정한 영역(domain)만을 대상으로 하는 언어.
  • 메타프로그래밍: 또 다른 프로그램을 만드는 프로그램으로 문제를 해결하는 언어.
  • 난해한 프로그래밍 언어: 실용적인 목적이 아니라 장난, 실험 등을 위해 의도적으로 만들어진 언어.