अजीब lexical syntax
- इस महीने मैंने 42 programming languages सीखी और llamafile के लिए एक नया syntax highlighter बनाया। Halloween के मौके पर मैं सबसे चौंकाने वाले syntax साझा करना चाहता हूँ।
- समर्थित भाषाएँ हैं: Ada, Assembly, BASIC, C, C#, C++, COBOL, CSS, D, FORTH, FORTRAN, Go, Haskell, HTML, Java, JavaScript, Julia, JSON, Kotlin, ld, LISP, Lua, m4, Make, Markdown, MATLAB, Pascal, Perl, PHP, Python, R, Ruby, Rust, Scala, Shell, SQL, Swift, Tcl, TeX, TXT, TypeScript, Zig।
Syntax highlighter को कैसे कोड करें
- Syntax highlighter को implement करना कठिन नहीं है। C++ और GNU gperf उपयोगी tools हैं।
- gperf perfect hash table बनाता है, जिससे performance को अधिकतम किया जा सकता है।
- एक बुनियादी syntax highlighter को finite-state machine के रूप में implement किया जा सकता है, जो strings, comments और keywords पर ध्यान देता है।
डेमो
- llamafile का नया syntax highlighter, ollama की तुलना में एक मजबूत बढ़त रखता है।
- Windows 10 पर Meta LLaMA 3.2 3B Instruct model का उपयोग करके अलग-अलग programming languages में code generate करने का डेमो दिया गया है।
चौंकाने वाले lexical syntax के उदाहरण
- C: C language खुद को सरल बताती है, लेकिन इसमें trigraphs जैसे जटिल तत्व हैं।
- Haskell: यह nested comments की अनुमति देती है।
- Tcl: identifiers में quotation marks शामिल हो सकते हैं।
- JavaScript: इसमें regular expression syntax है, और यह UNICODE characters को line break characters के रूप में उपयोग करता है।
- Shell: heredoc syntax को कई तरीकों से इस्तेमाल किया जा सकता है।
- String Interpolation: Kotlin, Scala, TypeScript strings के भीतर code insert करने की अनुमति देते हैं।
- Swift: strings को कई
# से घेरा जा सकता है।
- C#: strings को कई quotation marks से wrap किया जा सकता है।
- FORTH: यह हर चीज़ को whitespace boundaries के आधार पर tokenize करता है।
- FORTRAN और COBOL: llamafile इन भाषाओं के syntax highlighting को support करता है।
- Zig: multi-line strings दो backslashes से शुरू होती हैं।
- Lua: multi-line strings के लिए square brackets और equals signs का उपयोग करता है।
- Assembly: इसके कई dialects हैं, इसलिए syntax highlighting कठिन है।
- Ada: single quotation mark का कई उद्देश्यों के लिए उपयोग करता है।
- BASIC: strings के अंत में quotation mark होना ज़रूरी नहीं है।
- Perl: regular expression syntax अनोखा है।
- Ruby: इसका syntax जटिल है और समझना कठिन है।
समर्थित भाषाओं की जटिलता
- FORTH सबसे सरल है और Ruby सबसे जटिल भाषा है।
- हर भाषा के syntax highlighting के लिए code lines की संख्या के आधार पर जटिलता का आकलन किया गया है।
GN⁺ का सार
- यह लेख विभिन्न programming languages के अनोखे syntax की पड़ताल करता है और syntax highlighter को implement करने के लिए जरूरी insights देता है।
- llamafile का syntax highlighter कई भाषाओं को support करता है, और खासकर पुरानी भाषाओं के maintenance में उपयोगी हो सकता है।
- यह programming languages की syntactic complexity को समझने में मदद करता है, और syntax highlighter development में रुचि रखने वालों के लिए लाभदायक होगा।
- मिलती-जुलती सुविधाओं वाले projects में Pygments और Emacs शामिल हैं।
1 टिप्पणियां
Hacker News टिप्पणियाँ
||logical operator का उपयोग करने वाले short-circuit rule का वर्णन