컴퓨터 프로그래밍
위키백과 ― 우리 모두의 백과사전.
컴퓨터 프로그래밍(간단히 프로그래밍)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말한다. 프로그래밍은 기법, 과학, 수학, 공학적 속성들을 가지고 있다.
[편집] 프로그래밍 언어
주요 항목: 프로그래밍 언어
특정한 프로그래밍 언어로 쓰인 프로그램은 기계어로 번역되어 컴퓨터에 의해 실행되며, 어떤 프로그래밍 언어도 기계어로 번역이 가능하다. 어떤 언어에서는 기계어 대신 p-부호로 불리는 바이너리를 생성하기도 한다. 프로그래머가 기계 부호로 직접 작성하는 것도 가능하지만, 이는 굉장히 어려운 작업이다. 때문에 저수준에서의 컴퓨터 제어가 필요한 경우 프로그래머들은 기계어 명령어에 대한 일대일 연상 기호 대응인 어셈블리어를 사용한다.
서로 다른 프로그래밍 언어는 다른 프로그래밍 유형을 지원하기 때문에, 분야에 따라 적합한 언어가 존재한다. 또한 언어마다 프로그래머가 알고리즘을 구현할 때 구체적으로 다루는 수준의 차이가 있기 때문에, 사용의 편의성과 성능 사이에서 적절한 타협이 이루어진다.
[편집] 소프트웨어 개발
주요 항목: 소프트웨어 공학
소프트웨어는 컴퓨터 프로그램과 데이터를 총칭하는 용어이다. 이에 수반한 문서 자료는 소프트웨어의 필수 요소로 간주되지만, 실제 프로그래밍 과정에 포함되는 것은 아니다.
소프트웨어의 제작은 아래와 같은 과정을 포함한다:
- 특정 문제를 해결하기 위한 프로그램의 요구를 인지한다.
- 프로그램을 기획하고, 도구(하드웨어 플랫폼과 프로그래밍 언어를 포함한)를 선택한다.
|
|
|
|---|---|
| 수학적 기초 | 수리논리학 · 집합론 · 정수론 · 그래프 이론 · 형 이론 · 범주론 · 수치해석 |
| 계산 이론 | 오토마타 이론 · 계산 가능성 이론 · 계산 복잡도 이론 · 양자 계산 이론 |
| 알고리즘 & 자료 구조 | 알고리즘 해석 · 알고리즘 · 알고리즘 설계 · 자료구조 · 계산 기하학 |
| 프로그래밍 언어 & 컴파일러 | 구문 분석 · 컴파일러 · 인터프리터 · 프로그래밍 언어 · 순차적 프로그래밍 · 객체지향 프로그래밍 |
| 병행,병렬 & 분산 시스템 | 병행 컴퓨팅 · 분산 컴퓨팅 · 병렬 컴퓨팅 · 그리드 컴퓨팅 |
| 소프트웨어 공학 | 요구 분석 · 소프트웨어 설계 · 컴퓨터 프로그래밍 · 형식수법 · 소프트웨어 테스팅 · 소프트웨어 개발 |
| 시스템 아키텍처 | 컴퓨터 아키텍처 · 마이크로아키텍처 · 운영체계 |
| 통신 & 네트워크 | 컴퓨터 오디오 · 라우팅 · 네트워크 토플로지 · 암호학 |
| 데이터베이스 | 데이터 마이닝 · RDBMS · SQL |
| 인공 지능 | 자동추론 · 전산언어학 · 컴퓨터 비전 · 진화연산 · 기계학습 · 자연언어 처리 · 로봇학 |
| 컴퓨터 그래픽 | Visualization · 영상 처리 |
| 인간과 컴퓨터 상호 작용 | Computer accessibility · 사용자 인터페이스 · 착용 컴퓨터 · 유비쿼터스 컴퓨팅 · 가상현실 |
| 계산과학 | 인공생명 · 생물정보학 · 인지과학 · 계산화학 · 계산론적 신경과학 · 계산물리학 · 수치해석 · Symbolic mathematics |
ko:컴퓨터 프로그래밍

