본문 바로가기

Dev.World/개발상식&언어

[그들이 쓰는 언어] 2.파싱 / 파서 / 컴파일 / 루틴



파싱

'HTML을 파싱해 DOM을 구성한다.'
'파싱'이라는 말을 밥먹듯이 사용하는 개발자님들이다.
컴퓨터 과학 분야에서 파싱은 일련의 문자열을 의미있는 토큰으로 분해하고 이들로 이루어진 파스트리[각주:1]를 만드는 과정을 말한다.
가공되지 않은 데이터에서 원하는 특정한 문자열을 빼내는 작업이라고 할 수 있다

즉, 어떤 데이터를 원하는 모양으로 만들어 내는 것을 말한다.
원하는 모양은 내가 설정하지 않는다.
컴퓨터가 이해하기 쉬운, 컴퓨터가 원하는 모양으로 만들어 내는 것이다.

구체적으로 말하자면 특정문서를 읽어 들여서 이를 다른 프로그램이나 서브루틴이 사용할 수 있는 내부의 표현 방식으로 변환시켜 주는 것이다. 즉 사용자가 입력한 코드를 컴퓨터가 이해할 수 있도록 변환해주는 과정인 것이다.

파싱을 하는 프로세서를 '파서'라고 한다.
컴파일러의 일부로써 원시 프로그램의 명령문이나 문서의 태그 등을 입력으로 받아들여서 구문을 해석할 수 있는 단위 단위로 분할해 주는 역할을 한다.

컴파일

: 사람이 작성한 프로그래밍 언어를 기계가 이해하는 기계어 코드로 바꿔주는 과정을 말한다.

사람은 프로그래밍의 효율을 높이기 위해 기계어를 좀 더 인간친화적인 언어로 발전시켰고 그 언어를 갖고 프로그래밍을 하면 컴퓨터가 그것을 이해하도록 하는 것이다. 그 과정에서 컴파일러라는 것이 필요하게 된다. 더 자세한 설명은 검색으로도 쉽게 구할 수 있다.



서브루틴

컴퓨터 프로그래밍에서 루틴과 서브 루틴은 어떤 프로그램이 실행될 때
불려지거나 반복해서 사용되도록 만들어진 일련의 코드들을 지칭하는 용어이다.
그렇다면 함수인가?
같다고 볼 수도 있지만 일부 언어에서는  함수와 약간 다르다.
포트란이나 파스칼에서는 함수의 반환값이 없는 경우 서브루틴으로 정의하며
반환값이 있는 경우 함수로 정의한다.

우리가 쉽게 접하는 C언어의 경우 함수와 서브루틴을 별도로 구분하지 않는다.



-..-


  1. 올바른 문장에 대해 그 문장의 구조를 나무 그림 형태로 나타낸 것, 트리의 모든 가지가 터미널로 유도되어 가지치기가 끝난 상태의 트리를 파스트리라고 한다. [본문으로]