파싱 편집하기
편집을 되돌릴 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 | 당신의 편집 | ||
18번째 줄: | 18번째 줄: | ||
==파서== | ==파서== | ||
− | [[파서]](parser)란 [[컴파일러]](compiler)의 일부로서 원시 프로그램의 명령문이나 온라인 명령문, [[HTML]] 문서 등에서 Markup Tag 등을 입력으로 받아들여서 구분을 해석할 수 있는 단위로 여러 부분으로 해석해 | + | [[파서]](parser)란 [[컴파일러]](compiler)의 일부로서 원시 프로그램의 명령문이나 온라인 명령문, [[HTML]] 문서 등에서 Markup Tag 등을 입력으로 받아들여서 구분을 해석할 수 있는 단위로 여러 부분으로 해석해 w는 역할을 한다. 즉 Compiler나 [[Interpreter]]에서 원시 프로그램을 읽어 들여, 그 문장이 구조를 알아내는 Parsing을 행하여 주는 프로그램이다. 파서는 입력 데이터를 얻어 (흔히 텍스트) 및 빌드 소프트웨어 구성 요소 데이터 구조를 종종 일종의 - 파스 트리, 추상 구문 트리 또는 다른 계층 구조를 올바른 신택 니스를 확인하는 동안, 입력의 구조적 표현을 제공. 파싱은 다른 단계들에 선행하거나 이어질 수 있거나, 이들은 단일 단계로 결합될 수 있다. 파서 앞에는 종종 입력 문자 시퀀스에서 토큰을 생성하는 별도의 어휘 분석기가 있다. 또는 스캐너 없이 구문 분석할 수 있습니다. 파서는 수동으로 프로그래밍되거나 파서 생성기에 의해 자동 또는 반자동으로 생성될 수 있다. 구문 분석은 templating을 보완하여 형식화된 출력을 생성한다. 이들은 서로 다른 도메인에 적용될 수 있지만 종종 scanf / printf 쌍 또는 컴파일러의 입력 (프런트 엔드 파싱) 및 출력 (백엔드 코드 생성) 단계 와 같이 함께 나타난다. |
파서에 대한 입력은 종종 일부 컴퓨터 언어의 텍스트이지만, 자연어 텍스트 또는 구조화되지 않은 텍스트 데이터 일 수도 있다. 이 경우 일반적으로 구문 분석 트리가 아닌 텍스트의 특정 부분 만 추출된다. 파서는 [[scanf]] 와 같은 매우 간단한 기능부터 [[C++]] 컴파일러의 프런트엔드 또는 웹브라우저의 HTML 파서와 같은 복잡한 프로그램에 이르기까지 다양하다. 간단한 구문 분석의 중요한 클래스는 [[정규표현식]]을 사용하여 수행된다. 정규표현식 그룹은 정규 언어를 정의한다. 해당 언어에 대한 파서를 자동으로 생성하여 텍스트의 패턴 일치 및 추출을 허용하는 정규식 엔진. 다른 맥락에서, 정규 표현식은 파싱 전에 출력이 사용되는 렉시 단계로서, 파싱 전에 대신 사용된다. | 파서에 대한 입력은 종종 일부 컴퓨터 언어의 텍스트이지만, 자연어 텍스트 또는 구조화되지 않은 텍스트 데이터 일 수도 있다. 이 경우 일반적으로 구문 분석 트리가 아닌 텍스트의 특정 부분 만 추출된다. 파서는 [[scanf]] 와 같은 매우 간단한 기능부터 [[C++]] 컴파일러의 프런트엔드 또는 웹브라우저의 HTML 파서와 같은 복잡한 프로그램에 이르기까지 다양하다. 간단한 구문 분석의 중요한 클래스는 [[정규표현식]]을 사용하여 수행된다. 정규표현식 그룹은 정규 언어를 정의한다. 해당 언어에 대한 파서를 자동으로 생성하여 텍스트의 패턴 일치 및 추출을 허용하는 정규식 엔진. 다른 맥락에서, 정규 표현식은 파싱 전에 출력이 사용되는 렉시 단계로서, 파싱 전에 대신 사용된다. |