시리즈:쉽게 배우는 프로그래밍 입문

Nyeong (토론 | 기여)님의 2015년 5월 17일 (일) 16:15 판 (→‎컴파일러 -> 번역기: 비전문가가 더듬더듬 썼습니다. 전문가의 손길이 필요합니다.)

문서의 내용이 너무 쉬워서 오늘부터 프로그래밍 할 수 있을 것 같습니다.

이 문서에는 독자적으로 연구한 내용이 들어갑니다. 다른 사람의 의견을 존중하면서 무례하지 않도록 작성해 주시고, 의견 충돌 시 토론 문서에서 토론해 주세요.

들어가기 전에

이 항목은 예비 컴퓨터공학/과학 생들이 프로그래밍의 기초적인 내용을 적는 집단연구문서입니다.

이 항목에 내용을 추가하시는 분들께서는 대상층이 예비 대학교 1학년생이라 생각하시고 내용을 추가해 주셨으면 좋겠습니다.

만약에 항목에 없는 새로운 언어를 기준으로 추가하실 경우, 새로 목차를 만들어 주시길 바랍니다.

틀:쉽게 배우는 프로그래밍 입문

공통 용어

어떤 프로그래밍 언어를 사용하든지 반드시 알아야 할 용어들을 정리하였다.

변수

프로그램을 실행하였을 때, 프로그램의 자료를 메모리에 올릴 때, 데이터를 저장하는 메모리에 있는 공간

상수

프로그램에서 값을 바꿀 수 없고 고정되어 있는 변수, 또는 값(그냥 데이터).

함수

함수(function), 서브루틴(subroutine), 루틴(routine), 메서드(method), 프로시저(procedure)

프로그램에서 특정 동작을 수행하는 코드 부분이다.

번역기

어떠한 언어를 다른 언어로 바꾸어 주는 프로그램을 번역기라고 한다. 보통 세가지 경우를 생각할 수 있다.

첫째로 고급 언어를 저급 언어로 바꾸는 경우이다. 도착어가 기계어나 바이트 코드인 경우. 어쨌든 실행하면 CPU가 알아먹어야 하므로 모든 언어는 기계어로 도착한다고 할 수 있겠다.

둘째로 고급 언어를 고급 언어로 바꾸는 경우이다. source-to-source compiler라고 한다. 구현체나 버전의 차이를 매꿔야 하는 경우, 혹은 도착어를 좀 더 쉽게 쓰려 하는 경우 등이 이에 속한다.

다음의 예가 있겠다:

  • 자바스크립로 번역되는 CoffeeScript[1]
  • 자바스크립트로 번역되는 Dart[1]
  • 자바스크립트로 번역되는 TypeScript[2]
  • 루비를 자바스크립트로 번역해주는 Opal

전부 도착어가 자바스크립트인 것 같다면 착각이다.

마지막으로 저급 언어를 고급 언어로 바꾸는 경우가 있다. 이를 decompiler라고 한다.

해석하는 방식에 따라서도 두가지로 나눌 수 있다.

하나는 번역할 코드를 모두 읽어들인 후 한 번에 번역하는 컴파일러(compiler)이다. 컴파일 타임에 오류를 잡아낼 수 있으며 통번역되기 때문에 속도가 월등히 빠르다.

또 다른 하나는 컴파일러와 다르게 한 줄 한 줄씩 읽어들인 후 번역하는 인터프리터(interpreter)이다. 인터프리터는 한다. 특징은 컴파일러와 반대이다. 미리 번역할 필요가 없기 때문에 컴파일 없이 코드를 바로 실행할 수 있으며 동적이고 유연하다.

둘을 융합한 JIT(Just-in-time 컴파일)이라는 것도 있다. 미리 코드를 통번역 하지 않고, 프로그램을 시작할 때 필요한 부분만 번역하는 방식을 말한다. 예로 PyPy, Dalvik VM등이 있다.

빌드

프로그램의 소스코드를 실행 가능한 파일 형태로 변환하는 것을 말한다.

통합 개발 환경

Integrated Development Environment, 보통 IDE로 줄여 사용한다. 기본적으로 컴파일러, 디버거, 텍스트 편집기를 포함한다. Visual StudioEclipse처럼 기본적인 기능 외에 추가적인 기능을 자체적으로 또는 플러그인을 통해 제공하기도 한다.

  1. 1.0 1.1 언어 자체가 JavaScript로 번역되는 것을 전제로 만들어졌다.
  2. 언어 자체가 JavaScript로 번역되는 것을 ㅈ...