Programmable HTML #0
2024년도에 해야할 것들이 이제 정해져 갑니다. 그 중에 하나로 HTML로 실행 파일을 만들 수 있도록 컴파일해주는 프로젝트를 진행해 보려고 합니다. 그 첫 번째 이야기로 가능성을 보여주는 프로젝트 상황을 공유드리네요. 🤪 https://github.com/projectedby/ghtml 프로젝트 페이지입니다. 1. 간단한 더하기 연산을 수행하는 HTML 정의 위와 같이 HTML 파일을 작성하였습니다. 사용자 태그를 사용한 이유는 스펙에서 벗어나지 않고, 이미 정해진 엘러먼트의 철학도 깨지 않기 위해서입니다. https://html-lang.org 에서도 HTML 로 프로그래밍 가능한 것을 보여주었지만, HTML Element 의 원래 의도를 벗어나는 케이스가 많더라구요. 아마 그 분도 고민을 많이 하시고 유사한 태그로 연산을 정의하거나 각각의 표현을 정의하려 하셨을 것입니다. 저는 그래도 왠지 각 엘러먼트의 의도를 위반하지 않고 프로그래밍 가능한 HTML 가능성을 보여주려고 합니다. 스펙상 커스텀 태그를 정의할 수 있으니 이것은 HTML 스펙에서 벗어난 것은 아니겠지요. 🤔 2. 컴파일러 만들기 https://github.com/projectedby/ghtml 컴파일러는 위의 페이지에서 확인할 수 있습니다. 간단하게 Visibility Test 까지 작성된 소스입니다. 3. 컴파일 및 실행 /src/ghtml simple.html # 컴파일을 통하여 Intermediate Representation 생성 clang hello.bc -o hello # IR 을 실행 파일로 빌드 ./hello # 파일 실행 echo $? # 리턴 값 확인 아직은 절차가 복잡하지만, 프로젝트의 방향성을 정하고, 하나씩 하나씩 더해가다 보면, 컴파일 과정이나 실행 파일까지 빌드하는 과정이 많이 간소화될 것이라고 봅니다. 4. 미래 저는 이 프로젝트를 통해서 HTML을 잘하시는 분들이 HTML만으로 웹 브라우져에 종속되지 않는 다양한 제품을 만들 수 있기를 바랍니다. 내년에 할 일이 많네요. 2024년도는 왠지 즐거운 한 해가 될 듯 합니다. 🤪 HTML is a powerful programming language.