컴퓨터가 01101010... 등 이진수만으로 이루어진 정보들(머신코드)을 기반으로 작동한다는 사실은 이미 잘 알려져있다. 하지만, 우리가 프로그래밍 언어를 통해 개발을 하는 과정에서 이러한 이진수들을 작성한 일은 아마 없을 것이며, 그렇게 하라고 해도 하지 못할 것이다. 이말은 즉, 우리의 프로그래밍 언어를 컴퓨터 머신코드로 바꾸어주는 번역기가 존재한다고 이해할 수 있다. 바로 이 번역기가 컴파일러와 인터프리터가 되시겠다. 1) 컴파일러 개발자에 의해 작성된 코드가 컴파일러로 번역되어 프로그램의 실제 사용자에게까지 도달하는 과정은 다음과 같다. 코드 작성완료(프로그래밍 언어) -> 컴파일러로 번역(머신코드) -> 실제 사용자의 컴퓨터에 다운로드(머신코드) -> 작동 컴파일러를 통해 머신코드로 번역이 완..
그 외 공부/CS
프로그래밍을 위해 수 많은 언어들이 사용되고 있다. 언어의 종류가 다양한 것에는 소 잡는데 소 잡는 칼을 쓰고, 닭 잡는데 닭 잡는 칼을 쓰기 위해서이다. 무엇을 개발하고자 하는지에 따라 적합한 언어가 다르다는 뜻이다. 그리고 다양한 언어를 나누는 기준 중 한 가지가 동적타이핑 정적타이핑이다. 1) 동적타이핑 (Dynamic typing) 동적타이핑은 코드를 작성하는데 있어서 컴퓨터적 구조를 생략한다. 따라서 변수를 지정할 때 해당 변수의 데이터 타입 등을 명시하지 않아도 컴퓨터가 알아서 해석하도록 냅둔다. 예컨대 파이썬에서 a = 15 라는 식으로 변수를 지정할 때 a가 숫자라고 명시 하지 않더라도 컴퓨터는 이를 스스로 숫자라 해석한다. 이러한 방식은 코드를 보다 간결하게 해주며 코드의 로직을 보다 명..