eXtensible Markup Language의 약자로
사람들이 특정한 언어로 문서를 작성할 때, 컴퓨터에서 문서 정보 구조, 의미, 시각적인 형태를 정의하는 방법 중 하나이다.
태그라는 추가적인 코드로 표현한다.
다른 종류의 시스템끼리 데이터를 쉽게 주고 받을 수 있게 하여 HTML의 한계를 극복할 목적으로 개발되었다.
데이터를 표현하는 것뿐만 아니라 데이터의 스키마도 XML로 표현할 수 있다.
특정한 XML의 데이터 구조를 표현하는 스키마(dsd or xsd)가 있으면
그 데이터의 구조를 검증할 수 도있다.
XML 문서는 HTML 문서와 마찬가지로 트리 형태로 되어있다.
오토마타 이론을 기반으로 하고있다.
그래프 방식
"abctatop"에서 "top" 인식하기
유한한 상태를 표현하는 방식 중 하나
예시) 1이 연속해서 두번 나오지 않는 문자열 적합
특정한 언어 중 DFA가 존재하고 그 DFA가 특정한 L이 있는 문자열을 만족하는 경우, 해당 언어를 정규 언어라고 부른다.
서로 호환되지 않는 데이터 타입을 사용하는 시스템 간의 데이터 교환에는 많은 비용이 발생한다.
또한 데이터를 변환하는 과정에서 데이터의 손실이 발생할 수도 있다.
하지만 XML은 데이터를 텍스트 형식으로 저장하므로,
시스템에 독립적으로 데이터를 저장 및 전달할 수 있다.
따라서 XML로 데이터를 처리하면 OS나 프로그램, 브라우저 등에 상관없이
데이터를 안전하고 쉽게 전달할 수 있다.
뷰를 표현하는데 있어서는 정형화된 데이터를 다루기 때문에 XML을 가장 많이 쓴다.
Parser도 DFA언어를 다루는 오토마타를 구현한 것 중에 하나.
XML Parser는 XML 문서의 평문(plain text) 데이터를 읽어들여,
그것을 XML DOM 객체로 parsing 한다.
XML 파서는 XML 문서가 적합한 형식을 갖추고 있는지와 문법상의 오류는 없는지를 검사합니다.
현재 대부분의 주요 웹 브라우저는 모두 XML 파서를 내장하고 있습니다.
Document Object Model의 약자.
XML이나 HTML문서에 접근하기 위한 API.
DOM은 문서 내의 모든 요소를 정의하고,
해당 요소에 접근하는 방법까지 정의.
XML DOM은 XML 문서에 접근하여,
해당 문서를 조작할 수 있는 표준화된 방법을 정의.
XML DOM은 XML 문서 내의 모든 요소의 객체, 속성과
이를 접근하고 조작할 수 있는 메소드를 포함한다.
XML이 갖추어야 할 필수 조건을 충족한 XML을 말한다.
XML로써의 범용성이 크게 확보된다.
ex. 여는 태그가 있으면 반드시 닫는 태그가 나와야 한다.
XML Path Language를 의미.
XML 문서의 특정 요소나 속성에 접근하기 위한 경로를 지정하는 언어.
쉽게 말하자면 html, xml 상의 요소의 위치값이라고 보면 된다.
XPath 지정하기 : https://blog.naver.com/rudnfskf2
참고 : http://www.tcpschool.com/xml/xml_basic_document
컴파일러는 구문분석 -> 최적화 -> 코드생성 -> 링킹의 과정을 수행하는데
여기서 구문분석의 과정에 tokenizer, lexer, parser가 사용된다.
구문 분석 과정
컴파일러가 소스 코드 파일을 읽어서 개별 문법 요소 단위로 자른 뒤,
문법 요소들을 해석하여 추상 구문 트리(AST)를 작성한다.
AST(Abstract Syntax Tree)
프로그래밍 언어로 쓰여진 소스코드의 Abstract Syntatic 구조를 표현하기 위해 사용되는 자료구조이다.
Tokenizer
어떤 대상의 의미있는 요소들을 어휘 분석의 단위인 토큰으로 쪼개는 역할.
Lexer
쪼갠 Token의 의미를 분석하는 역할.
Parser
분석된 데이터를 구조적으로 나타낸다.
이 때 데이터의 검증도 함께 수행한다.
프로그래밍 언어에서 사용하는 토큰의 종류
참고 : https://gobae.tistory.com/94
https://ko.wikipedia.org/wiki