본문 바로가기

파싱

[컴파일러] 컴파일러: 원리, 기법, 도구 - 구문 정의와 파스 트리 구문 정의 (syntax definition) 문맥 자유 문법은 언어의 구문을 기술하기 위해 사용되며 컴파일러의 전반부를 표현하는 방법이다. 그렇다면 문맥 자유 문법(줄여서 자유 문법)은 어떻게 표현될까? 익숙한 if-else 문을 통해 자유 문법을 알아보자. if (expression) { statement } else { statement } 이 C 코드를 자유 문법으로 나타내면 다음과 같이 표현된다. - statement -> if (expression) {statement} else {statement} 화살표의 뜻은 왼쪽 문법 기호가 오른쪽 문자열을 생성한다는 뜻이다. (오른쪽 문자열로 왼쪽 문자열로) 이러한 형식을 생성 규칙(production) 이라고 한다. 문맥 자유 문법을 통해서는 의미 .. 더보기
[Python] 파이썬로 ArXiv 크롤링하기 pyArXiv 0.0.3이후로는 이하 블로그 글과 구조가 많이 달라졌습니다... 파이썬은 urllib, bs4.BeautifulSoup, requests같이 크롤링을 위한 라이브러리를 다수 제공한다. 오늘은 간단히 ArXiv 파서를 만들어 보면서 얻었던 크롤링 경험을 포스팅 해보자 한다. 문제의 시작은 ArXiv 논문 다운로드에서 출발했다. ArXiv는 논문 번호로 조회와 다운로드가 가능하다. 하지만 다운로드 할때 논문 이름 대신 논문 번호로 pdf이름이 받아진다. 결국 논문 정리할 때 일일이 열어보고 아 이거 아니네 하는일이 빈번해서 받을때 논문 이름으로 다운받게 해주는 파이썬 크롤링 패키지를 만들기로 했다. pyArXiv 패키지는 두개의 메소드를 가진다. 하나는 논문 번호로 논문 정보를 찾는 quer.. 더보기