위키프로젝트:컴퓨터 과학/프로그래밍 언어
(위키백과:위키프로젝트 프로그래밍에서 넘어옴)
이 위키프로젝트는 총의에 의해 폐지되었습니다. 연관된 다른 프로젝트에 참여해주세요. |
현재 한국어 위키백과에 절대적으로 부족한 프로그래밍 개념과 언어 관련 페이지들에 대한 기준을 마련하고 채워 나가는 작업을 하려 합니다. --토끼군
참여자
편집이 프로젝트에 참여하고 있다는 것을 표시하려면 {{위키프로젝트 프로그래밍 참가자}} 틀을 부착하시면 됩니다.
- 사용자:토끼군
- 사용자:CN
- 사용자:Peremen
- 사용자:ahealer
- 사용자:Johyeongryeol
- 사용자:게로게론
- 휘뚜루마뚜루 (토론)
- 사용자:Badbread
- Bondage Boy 2008년 12월 12일 (금) 17:20 (KST)
- 사용자:Winddeep
- 사용자:Devunt
- l쑥차 (토론) 2010년 9월 12일 (일) 16:12 (KST)
- 스젯 (론 · 여 · 록 · 멜) 2010년 12월 15일 (수) 07:34 (KST)
- 사용자:Dynaxis
- 사용자:Tmddn2242
- 사용자:cwt96
프로그래밍 언어
편집페이지 이름
편집기본적인 원칙은 이렇습니다.
- "(프로그래밍 언어)"라는 접미사를 붙여서 페이지를 만드는 경우:
- 실존하는 사람의 이름에서 따 온 프로그래밍 언어는 항상 붙입니다. (Eiffel 등)
- 음역이 거의 불가능한 세 글자 이하의 두문자어들은 거의 대부분 붙입니다. (ABC, C, D 등)
- 해당 언어의 영문 페이지가 동음이의 페이지로 연결되어 있을 경우 거의 대부분 붙입니다. (Forth 등)
- 한국어에서 잘 알려진 이름(위성 이름이라든지……)과 겹칠 가능성이 매우 큰 이름도 붙입니다. (Io, Prolog, Perl 등)
- 세 글자 이하의 두문자어를 제외한 모든 페이지 이름은 기호까지 최대한 음역합니다. (COBOL, FORTRAN 등)
- "#"은 항상 "샤프"로 적습니다.
- ".NET"은 항상 "닷넷"으로 적습니다.
- 둘 이상의 단어가 CamelCase로 연결된 페이지 이름은 최대한 붙여 씁니다. (QBasic, ActionScript 등)
틀
편집{{주요 프로그래밍 언어}}
편집가장 참고가 될 만한 템플릿은 프랑스어 위키백과로, 객체지향/명령형/함수형/정의형/concurrent 식으로 분리해 놓고 있습니다.
{{프로그래밍 언어 정보}}
편집프로그래밍 언어에 대한 일반적인 정보를 담는 데 사용합니다. 주의할 점은:
- 프로그래밍 언어와 구현체가 밀접하게 결합된 경우도 있지만 (예를 들어 파이썬) 아닌 경우도 많습니다. (예를 들어 C++) 따라서 프로그래밍 언어 자체의 발전은 구현체의 발전과 별도로 서술해야 할 수도 있습니다.
- 프로그래밍 언어의 버전은 표준 문서가 존재할 경우 그 문서의 버전을 기준으로 해 주세요. (예를 들어서 ISO/IEC C++ 2003)
예제코드
편집가급적 예제코드를 넣어주세요.
프로그래밍 패러다임
편집아래는 사용자:토끼군이 일단 대략적으로 만든 패러다임 및 언어의 분류입니다. 고칠 점은 토론을 쓰시거나 직접 고쳐 주세요.
- 명령형 프로그래밍: 프로그램의 상태를 변화시키는 명령으로 이루어진 언어.
- 선언형 프로그래밍: (일반적으로) 프로그램이 결과적으로 어떤 행동을 해야 할지 정하는 ‘선언’으로 이루어진 언어.
- 순차적 프로그래밍: 실행의 흐름이 순차적으로 이루어지는 언어.
- 절차적 프로그래밍: 프로그램이 연속적으로 어떤 일을 하는 프로시저 또는 함수들로 구성된 언어.
- 구조적 프로그래밍: 프로그램이 서로 구별되는 일을 하는 여러 부분으로 구조화된 언어.
- 객체지향 프로그래밍: 프로그램이 객체와 그 객체에 대해 적용되는 속성 및 행동으로 구성되는 언어.
- 클래스 기반 프로그래밍: 클래스와 인스턴스의 구분이 뚜렷한 언어.
- 프로토타입 기반 프로그래밍: 클래스와 인스턴스의 구분이 없는 언어.
- 관점지향 프로그래밍: 일반적인 책임 구분을 넘어서는 문제를 관점(aspect)으로 추가적으로 모델링한 언어.
- 일반적 프로그래밍: 자료형에 구애를 받지 않는 일반화된 프로그래밍이 가능한 언어.
- 함수형 프로그래밍: 함수가 일반적인 값들과 동등하게 취급되는 언어. 람다 대수에 기반합니다.
- 논리형 프로그래밍: 프로그램이 단언(assertion)과 목표(goal)로 구성되는 언어.
- 제한형 프로그래밍: 변수 사이의 관계를 제한(constraint)을 통해 정의하는 언어.
- 데이터 구조와 연관을 맺는 언어
- 벡터 프로그래밍: 스칼라와 벡터, 행렬 등을 투명하게 접근하고 연산할 수 있는 언어.
- 리스트 기반 프로그래밍 언어: 리스트 데이터 구조를 기반으로 하는 언어.
- 스택 기반 프로그래밍 언어: 스택 데이터 구조를 기반으로 하는 언어.
- 규칙 기반 프로그래밍: 어떤 특정한 조건(condition)이 일어 났을 때 수행할 특정한 동작, 즉 규칙(rule)으로 구성된 언어.
- 사건 기반 프로그래밍: 비동기적으로 발생하는 사건(event)과 그 사건을 처리하는 처리자(handler)로 구성된 언어.
- 병행 프로그래밍: 여러 프로그램의 흐름이 동시에 일어 나는 것을 지원하며 그 흐름을 제어할 방법을 지원하는 언어.
- 분산 프로그래밍: 여러 프로그램의 흐름이 서로 독립적인 여러 개의 주체에 의해 일어나는 언어.
- 파이프라인 프로그래밍 언어: 데이터를 순차적으로 변형시키는 여러 부분으로 이루어진 언어.
- 투영적 프로그래밍(reflexive programming. 다른 번역어 있으면 알려 주세요): 실행 시간에 프로그램 자신의 고수준 구조를 접근할 수 있는 언어.
- 문학적 프로그래밍: 소스 코드와 그 문서화가 유기적으로 결합된 언어.
- 시각적 프로그래밍: 일차원적인 텍스트가 아닌 이차원 이상의 시각적인 방법으로 프로그래밍이 가능한 언어.
- 매크로 프로그래밍 언어: 일반적인 텍스트 안에 삽입되어 동작하는 프로그래밍 언어. 전처리기도 여기에 속합니다.
- 어셈블리어: 기계어와 직접적인 대응이 가능한 저수준 언어. 저급언어로 분류되는 언어들은 사실상 모두 여기에 해당합니다.
- 기계어: CPU와 같은 특정한 기계 장치(또는 그를 흉내내는 simulator)가 바로 해석할 수 있는 언어.
- 전문 영역 언어: 특정한 영역(domain)만을 대상으로 하는 언어.
- 메타프로그래밍: 또 다른 프로그램을 만드는 프로그램으로 문제를 해결하는 언어.
- 템플릿 메타프로그래밍: C++의 템플릿을 통해 컴파일 시간에 실제 코드를 만들어 내는 메타프로그래밍 기법.
- 난해한 프로그래밍 언어: 실용적인 목적이 아니라 장난, 실험 등을 위해 의도적으로 만들어진 언어.