본문 바로가기

유형설명서3

콘솔 이런! 뭔가 코드가 잘못됐어. 웹 브라우저 콘솔을 사용하여 디버깅하려고 합니까? 만세! 우린 비슷한 점이 많죠 거의 모든 웹 브라우저는 개발자가 코드를 디버깅할 수 있도록 콘솔로 알려진 인터페이스를 제공한다. 코드 샘플의 오류 위치를 쉽게 추적하기 위해 개발자로서 경고, 오류 또는 일반 정보만 있으면 됩니다. 저에게 콘솔은 디버거가 아니라 알고리즘으로 시작하거나, 수학 연산을 시도하거나, 전역 변수에 저장된 데이터 개체를 가지고 놀기 위해 매우 자주 사용하는 도구입니다. 프로그래밍 언어에서 콘솔은 브라우저 디버깅 인터페이스에 대한 접근을 제공하는 객체라고 할 수 있다. console.log()를 사용하여 데이터 객체나 일부 메시지를 인쇄하기 위해 콘솔을 사용하지만, 이에 제한되지는 않습니다. 콘솔은 우리.. 2022. 1. 4.
[JavaScript 통역]자바스크립트 | 제2부 在上一篇文章裡我們講解了直譯器的基本架構,並實作出一個可以進行基礎四則運算的直譯器。但這個直譯器遇到正負號、空白字元、小數點、括號等等字元時會因為無法解析而出錯,因此本篇文章將會著手解決這些問題。 空白字元 要解決空白字元的問題非常簡單,只需要在讀取到空白字元時自動跳過就可以了,因此需要對我們的lexer稍加修改 : lexer在讀取文字時若遇到空白字元,直接呼叫advance()跳過。 執行程式進行測試 : js> 1 + 2 3 js> 12 + 345 * 2 / 10 81 測試成功 ! 小數點 要能夠解析小數點的話,需要擴展我們lexer裡面的number()定義,在解析數字時遇到第一個小數點,可以接受這個字元並繼續向後解析,但若是同一個數字中出現多個小數點則會拋出錯誤 : 同樣的執行測試 : js> 1.3 + 2.45 3.75 js> 345.2 + 9.8 355 測.. 2021. 12. 29.
[JavaScript 통역]자바스크립트 | 제1부 上一篇文章我們製作出了一個可以回應使用者輸入的程式,接下來我們會介紹一個直譯器的基礎架構,並實作語法解析與執行的部分,讓我們的程式能夠真正讀懂輸入的文字,本篇文章的最後會做出一個可以進行基本四則運算 基本架構 直接看圖 上面的圖示簡單說明了一個解釋器的基本架構,以及如何分析、執行程式碼,最後輸出結果的流程,以下會針對每一個部分進行更完整的介紹。 text : 文字檔案 再複雜的程式碼也是一般的文字檔案,我們的直譯器需要取得文字內容來進行分析,取得文字的方式在我們上一篇文章已經實作完成了,若還沒有看過可以先回到上一篇文章,把專案建立起來後再繼續進行下去。 lexer : 詞法分析器 將獲得的文字內容進行分類、組合,轉換成我們的程式所需要的token,現在有許多方便、開源的lexer可以選擇,像是lex,不過為了學習,我們會自己動手創造一個。 以我們這次要建立的四則運算直譯器來做舉例 : .. 2021. 12. 29.