주어진 어떤 문제를 해결하기 위해 인간과 컴퓨터 사이에서 의사소통을 가능하게 하는 인공적인 언어를 말함
프로그래밍 언어를 공부해야 하는 이유
- 효율적인 알고리즘을 개발할 수 있는 능력의 향상시킴
- 현재 사용하는 프로그래밍 언어의 능력을 향상시킴
- 주어진 과제를 해결하는 최적의 언어를 선택할 수 있음
간결성(simplicity) : 사람이 프로그램을 쉽게 이해하고, 읽을 수 있도록 간결하게 표현할 수 있는 특성임
직교성(orthogonality) : 언어의 각 구성 요소가 상호 독립적이고 어떤 환경에서도 그 구성요소가 같은 의미로 사용됨
가독성(readability) : 누구나 쉽게 프로그램을 읽을 수 있는 특성을 말함
정확성(preciseness) : 엄밀하게 정의된 문법에 따라 작성된 프로그램은 정확성을 보장하며 예측 가능한 번역을 보장함
기계 독립성(machine independence) : 서로 다른 컴퓨터 상에서도 운영이 가능해야 하고, 똑같은 결과를 도출해야 함
(예: A = B + C * D)
고급언어를 기계어로 번역해주는 도구, 또는 논리적 장치
고급언어로 작성된 프로그램을 기계어(0,1)로 번역하는 것
즉 개발자가 고급언어로 프로그래밍한 코드를 CPU가 이해할 수 있게 변환해주는 것이 컴파일러 이다