어휘 분석이란 소스 프로그램을 읽어들여 토큰이라는 의미 있는 문법적 단위로 분리하고 토큰 스트림을 생성하는 것이다.
이러한 어휘 분석을 담당하는 도구를 '어휘분석기' 또는 '스캐너'라고 한다.
언어마다 사용하는 토큰이 다르지만 일반적인 프로그래밍 언어에서 사용하는 토큰은 if, for, while과 같은 예약어, 3, 2.5와 같은 상수, +, -, *, /, =와 같은 연산자, 프로그래머가 정의한 식별자, 그리고 괄호나 쉼표(,), 세미클론(;)과 같은 구분자 등이 있다.
이러한 토큰은 다음 단계인 구문 분석에서 효율을 높이기 위해 순서쌍( 토큰 번호, 속성 값 )의 형태로 전달한다.
엔디안( Endianness )은 멀티바이트 데이터를 메모리에 저장하는 방식을 의미한다. 컴퓨터는 데이터를 메모리에 저장할 때 바이트 단위로 저장하는데, 하나의 데이터가 여러 바이트로 구성될 경우 어떤 바이트를 앞에 배치할 것인가에 따라 빅 엔디안과( Big Endian )과 리틀 엔디안( Little Endian ) 방식으로 나뉜다.
📌 빅 엔디안( Big Endian )
큰 바이트(= 상위 바이트)를 앞에 배치하는 방식이다.
이 방식은 평소 우리가 숫자를 사용하는 선형 방식과 같은 방식이다.
메모리에 저장된 순서 그대로 읽을 수 있어서 이해하기가 매우 쉽다.
RISC CPU 계열에서 이 방식으로 데이터를 저장한다.
네트워크에서 데이터를 전송할 때 사용한다. ( TCP/IP 프로토콜은 빅 엔디안 방식 사용 )