GitHub - projectedby/ghtml: GNU LIKE HTML COMPILER
GitHub
2024년도에 해야할 것들이 이제 정해져 갑니다. 그 중에 하나로
HTML로 실행 파일을 만들 수 있도록 컴파일해주는 프로젝트를 진행해 보려고 합니다.
그 첫 번째 이야기로 가능성을 보여주는 프로젝트 상황을 공유드리네요. 🤪
https://github.com/projectedby/ghtml 프로젝트 페이지입니다.
간단한 더하기 연산을 수행하는 HTML 정의
<html>
<head>
</head>
<body>
<ghtml-declare type="int" name="x" value="5"></ghtml-declare>
<ghtml-declare type="int" name="y" value="2"></ghtml-declare>
<ghtml-return>
<ghtml-variable target="x"></ghtml-variable>
<ghtml-operator type="+"></ghtml-operator>
<ghtml-variable target="y"></ghtml-variable>
</ghtml-return>
</body>
</html>
위와 같이 HTML 파일을 작성하였습니다. 사용자 태그를 사용한 이유는 스펙에서 벗어나지 않고, 이미 정해진 엘러먼트의 철학도 깨지 않기 위해서입니다. https://html-lang.org 에서도 HTML 로 프로그래밍 가능한 것을 보여주었지만, HTML Element 의 원래 의도를 벗어나는 케이스가 많더라구요. 아마 그 분도 고민을 많이 하시고 유사한 태그로 연산을 정의하거나 각각의 표현을 정의하려 하셨을 것입니다. 저는 그래도 왠지 각 엘러먼트의 의도를 위반하지 않고 프로그래밍 가능한 HTML 가능성을 보여주려고 합니다. 스펙상 커스텀 태그를 정의할 수 있으니 이것은 HTML 스펙에서 벗어난 것은 아니겠지요. 🤔
컴파일러 만들기
https://github.com/projectedby/ghtml
컴파일러는 위의 페이지에서 확인할 수 있습니다. 간단하게 Visibility Test 까지 작성된 소스입니다.
컴파일 및 실행
/src/ghtml simple.html # 컴파일을 통하여 Intermediate Representation 생성
clang hello.bc -o hello # IR 을 실행 파일로 빌드
./hello # 파일 실행
echo $? # 리턴 값 확인
아직은 절차가 복잡하지만, 프로젝트의 방향성을 정하고, 하나씩 하나씩 더해가다 보면, 컴파일 과정이나 실행 파일까지 빌드하는 과정이 많이 간소화될 것이라고 봅니다.
미래
저는 이 프로젝트를 통해서 HTML을 잘하시는 분들이 HTML만으로 웹 브라우져에 종속되지 않는 다양한 제품을 만들 수 있기를 바랍니다.
내년에 할 일이 많네요. 2024년도는 왠지 즐거운 한 해가 될 듯 합니다. 🤪
HTML is a powerful programming language.
다음 내용이 궁금하다면?
이미 회원이신가요?
2023년 12월 31일 오전 7:31
S
... 더 보기바이브 코딩을 여러가지 카테고리에 적용해보고 있는데, 머신러닝쪽은 압도적으로 좋네요. 진짜 코드를 안 봐도 될 정도임.
심지어 머신러닝 연구 작업 특성상 코드를 안봐도 되니까 실험하는게 겁나 재밌어짐. 미쳤음. GPU 무한대로 준다는 말에 혹한다는 것이 완전 이해가 됨.