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
스트레스를 잘 관리하면서 건강하게 살아가고 싶다면, 우선 살아있는 한 우리가 해야 할 일들은 영원히 없어지지 않을 것이므로, 해야 할 일을 100% 해내면서 할 일 목록을 완전히 없애는 데 많은 노력을 들이기보다는 70% 정도만 해내도 만족할 필요가 있다.
... 더 보기좋
... 더 보기어제 AI 시대의 개발자 토론회에서 내가 대 AI 시대에는 버전관리 시스템이 필요없을 수도 있다고 생각해야한다는 말을 했는데, 그정도로 파격적인 생각을 해야한다는 이야기긴했지만, 진짜 그럴까?를 다시 한 번 생각해봤다.
우선 버전관리 시스템의 목적은 크게 다음 세 가지다.
최
... 더 보기최근에 친구가 추천해준 데일 카네기의 인간관계론을 읽던 중 고액 연봉을 받는 엔지니어들의 특징에 대한 흥미로운 내용이 있었다.
... 더 보기매
... 더 보기