프로그래밍 언어는 모두 계산을 일련의 단계로 풀어서 상세히 설명하기 위한 표기법이다. 그래서 기본 아이디어는 같은데, 모든 프로그래밍 언어는 입력 데이터를 읽고, 산술 연산을 하고, 계산이 진행됨에 따라 중간 값을 저장하고 가져오며, 이전에 계산한 값을 기반으로 어떻게 진행할지 결정하고, 그 과정에서 결과를 표시하고, 계산이 완료되면 결과를 저장하기 위한 방법을 제공한다.
언어이기 때문에 문법 syntax가 존재한다. 정확하게 표현하지 않으면 에러나 불평이 나오게된다. 항상 모든 프로그램에 대해서 구문 상 정확한지, 그렇다면 의미는 모호하지 안항야 하지만 항상 이렇게 이상적이지는 않다. 단어가 가진 모호성이나 개발자의 실수, 혹은 시간이 흐르면서 언어가 변할 수도 있다.
대부분의 언어는 세 가지 측면에서 살펴볼 수 있다. 첫 번째는 언어 그자체다. 컴퓨터에 산술 연산을 수행하고, 조건을 검사하고, 계산을 반복하라고 지시하는 문장이다. 두 번째로, 다른 이들이 작성했지만 프로그램을 만들 때 사용할 수 있는 코드 라이브러리가 있다. 라이브러리는 직접 작성하지 않아도 되는 사전 제작된 부품으로, 대표적인 예로는 수학 연산, 날짜 계산, 텍스트 검색과 조작을 위한 함수가 있다. 세 번째는 프로그램 실행 환경에 접근하는 기능이다. 브라우저에서 실행되는 자바스크립트 프로그램은 사용자에게서 입력을 받고, 사용자가 버튼을 누르거나 폼에 타이핑하는 것 같은 이벤트에 반응하며, 브라우저가 다양한 콘텐츠를 표시하거나 다른 웹페이지로 가게 만들 수 있다.