Programmable HTML #0

2024년도에 해야할 것들이 이제 정해져 갑니다. 그 중에 하나로


HTML로 실행 파일을 만들 수 있도록 컴파일해주는 프로젝트를 진행해 보려고 합니다.


그 첫 번째 이야기로 가능성을 보여주는 프로젝트 상황을 공유드리네요. 🤪


https://github.com/projectedby/ghtml 프로젝트 페이지입니다.


  1. 간단한 더하기 연산을 수행하는 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 스펙에서 벗어난 것은 아니겠지요. 🤔


  1. 컴파일러 만들기


https://github.com/projectedby/ghtml


컴파일러는 위의 페이지에서 확인할 수 있습니다. 간단하게 Visibility Test 까지 작성된 소스입니다.


  1. 컴파일 및 실행


/src/ghtml simple.html # 컴파일을 통하여 Intermediate Representation 생성

clang hello.bc -o hello # IR 을 실행 파일로 빌드

./hello # 파일 실행

echo $? # 리턴 값 확인


아직은 절차가 복잡하지만, 프로젝트의 방향성을 정하고, 하나씩 하나씩 더해가다 보면, 컴파일 과정이나 실행 파일까지 빌드하는 과정이 많이 간소화될 것이라고 봅니다.


  1. 미래


저는 이 프로젝트를 통해서 HTML을 잘하시는 분들이 HTML만으로 웹 브라우져에 종속되지 않는 다양한 제품을 만들 수 있기를 바랍니다.


내년에 할 일이 많네요. 2024년도는 왠지 즐거운 한 해가 될 듯 합니다. 🤪


HTML is a powerful programming language.



GitHub - projectedby/ghtml: GNU LIKE HTML COMPILER

GitHub

GitHub - projectedby/ghtml: GNU LIKE HTML COMPILER

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 12월 31일 오전 7:31

조회 399

댓글 0

    함께 읽은 게시물

    《기다림이 허락되지 않는 시대》

    ... 더 보기

    영화 '로비'

    

    ... 더 보기


    바이브 코딩을 여러가지 카테고리에 적용해보고 있는데, 머신러닝쪽은 압도적으로 좋네요. 진짜 코드를 안 봐도 될 정도임.


    심지어 머신러닝 연구 작업 특성상 코드를 안봐도 되니까 실험하는게 겁나 재밌어짐. 미쳤음. GPU 무한대로 준다는 말에 혹한다는 것이 완전 이해가 됨.


    인프라에 관심있는 분께 추천드렸던 책들...

    최근에 인프라에 관심이 있는데 어떤 것들을 공부하면 좋을까? 어떻게 공부하면 좋을까? 질문주신 분이 있어서 이런 저런 이야기를 적다가, 시간이 되시면 이런 책도 읽어보면 좋을 것 같아요. 하고 추천했던 책들을 정리해봤어요. ---- https://www.yes24.com/Product/Goods/44376723 DevOps와 SE를 위한 리눅스 커널 이야기 - 강진우 저 리눅스 서버 운영할 때 어떤 부분들을 신경써야 하는지, 어떤 지표들을 어떻게 모니터링해야 하고, 문제상황에... 더 보기

     • 

    댓글 1 • 저장 115 • 조회 7,739