Lil' Fun Langs' Guts | Mewayz Blog Skip to main content
Hacker News

Lil' Fun Langs' Guts

Mga komento

16 min read Via taylor.town

Mewayz Team

Editorial Team

Hacker News

Ngano nga ang Pag-peeking Ubos sa Takop sa Gagmay nga mga Pinulongan sa Programming Makahimo Nimo nga Mas Maayo nga Magtutukod

Ang matag piraso sa software nga imong gigamit — gikan sa CRM nga nagsubay sa imong mga lead ngadto sa makina sa automation nga nagpadala sa mga invoice sa tungang gabii — gihimo gamit ang programming language. Apan nahunahuna ba nimo kung unsa ang naghimo sa usa ka programming language nga tik? Dili ang daghang mga ekosistema sama sa Python o JavaScript, apan ang gagmay, dili maayo, makalipay nga mga katingad-an nga gitukod sa mga developer sa usa ka semana aron masulbad ang usa ka problema o aron lang makat-on. Kining mga "lil' fun langs" — mga dulaan nga pinulongan, domain-specific nga mga pinulongan (DSLs), ug educational interpreter — diin nagpuyo ang pipila sa labing elegante nga mga ideya sa computer science. Ang pagsabut sa ilang guts dili lang maghimo kanimo nga usa ka mas maayo nga programmer; batakan kini nga nagbag-o sa imong hunahuna bahin sa paghimo og mga himan, pag-automate sa mga workflow, ug pagdesinyo sa mga sistema nga aktuwal nga magamit sa mga tawo.

Unsa man gyud ang "Lil' Fun Langs"?

Ang kalibutan sa programming puno sa mga lengguwahe nga wala gyud gituyo sa pagpaandar sa mga server sa produksiyon o pagproseso sa minilyon nga mga transaksyon. Mga pinulongan sama sa Lox (gikan sa Robert Nystrom's Crafting Interpreters), Monkey (gikan sa Thorsten Ball'sWriting an Interpreter in Go), o bisan sa joke nga mga lengguwahe sama sa Brainfuck ug Chef anaa aron sa pagtudlo, sa paglingaw, ug sa pagduso sa mga utlanan kung unsa ang gipasabot sa usa ka "pinulongan". Kining gagmay nga mga pinulongan nagtangtang sa kakomplikado sa tinuod nga kalibutan nga mga toolchain ug nagbutyag sa hilaw nga mekaniko kung giunsa ang code mahimong aksyon.

Apan ang "lil' fun langs" dili limitado sa edukasyonal nga mga ehersisyo. Ang mga pinulongan nga espesipiko sa domain naghatag gahum sa pipila sa labing epektibo nga mga himan sa negosyo sa merkado. Matag higayon nga magsulat ka og pormula sa usa ka spreadsheet, magtakda og filter nga lagda sa imong email client, o mag-configure og automation nga workflow sa usa ka plataporma sama sa Mewayz, nakig-interact ka sa usa ka gamay, gituyo nga pinulongan. Ang 207 ka modules sulod sa Mewayz — nagsangkap sa CRM, invoicing, HR, fleet management, ug uban pa — nagsalig sa internal rule engines ug expression parser nga, sa ilang kinauyokan, ginagmay nga mga pinulongan nga gidesinyo sa paghatag sa mga tiggamit og gahum nga wala magkinahanglan og computer science degree.

Ang pagsabot sa anatomy niini nga mga lengguwahe nagpadayag ngano nga ang pipila ka mga himan mobati nga intuitive samtang ang uban mobati nga sama sa pakigdumog sa usa ka manwal nga gisulat sa laing dimensyon.

Ang Lexer: Pagbungkag sa mga Pulong Ngadto sa mga Atom

Ang matag pinulongan, bisan unsa ka gamay, nagsugod sa samang sukaranan nga lakang: lexical analysis, o "lexing." Ang usa ka lexer mokuha ug hilaw nga hugpong sa mga karakter — sama sa total = price * quantity + tax — ug gibahin kini ngadto sa makahuluganon nga mga tipak nga gitawag ug mga token. Ang lexer wala pa magtagad sa kahulogan. Gipaila lang niini nga ang total kay usa ka identifier, = kay assignment operator, price kay laing identifier, * kay multiplication, ug uban pa.

Ang paghimo og lexer para sa gamay nga lengguwahe makatingala nga makapatagbaw. Sa ubos sa 100 ka linya sa code, mahimo nimong itudlo ang usa ka programa sa pag-ila sa mga numero, string, keyword, ug operator. Ang kayano mao ang punto — kini nagpugos kanimo sa paghunahuna kon unsa ang hingpit nga minimum nga hugpong sa "mga pulong" nga gikinahanglan sa imong pinulongan. Kini nga parehas nga panghunahuna magamit sa pagdesinyo sa mga himan nga nag-atubang sa tiggamit. Kung gitugotan sa makina sa automation sa Mewayz ang usa ka gamay nga tag-iya sa negosyo nga magbutang usa ka lagda sama sa "kung ang invoice na-overdue sa 7 ka adlaw, ipadala ang email sa pahinumdom," ang sistema hilom nga nag-lex sa kana nga lagda sa mga istruktura nga token nga mahimo’g molihok niini. Ang labing maayo nga mga interface mobati nga walay kahago tungod kay adunay usa nga naghunahuna pag-ayo kung unsa ang hitsura sa labing gamay nga makahuluganon nga mga yunit sa katuyoan sa tiggamit.

Pag-parse: Pag-ilis sa mga Patag nga Token Ngadto sa Buhi nga Kahoy

Sa higayon nga ikaw adunay mga token, kinahanglan nimo ang istruktura. Ang pag-parse nag-usab sa usa ka patag nga han-ay sa mga token ngadto sa usa ka Abstract Syntax Tree (AST) — usa ka hierarchical nga representasyon nga nagkuha sa mga relasyon tali sa lain-laing mga bahin sa usa ka ekspresyon. Ang ekspresyon nga 3 + 4 * 5 dili lang usa ka han-ay sa lima ka mga token; usa kini ka kahoy diin mas hugot ang pagbugkos sa pagpadaghan kay sa pagdugang, nga nagpatunghag 23 imbes 35.

Dinhi diin ang mga butang mahimong tinuod nga makalingaw. Ang mga algorithm sa pag-parse sama sa recursive descent o Pratt parsing maoy elegante nga mga piraso sa engineering nga mohaum sa usa ka file apan makahimo sa pagdumala sa katingad-an nga komplikado nga mga gramatika. Ang mga recursive descent parser, ilabina, nagbasa halos sama sa usa ka espesipikasyon sa pinulongan mismo — ang matag function katumbas sa usa ka lagda sa gramatika, nga naghimo sa code nga self-documenting sa paagi nga talagsaon sa software development.

Ang mga leksyon gikan sa pag-parse kay layo pa sa disenyo sa pinulongan. Ang bisan unsang sistema nga nagproseso sa structured input - usa ka booking form nga adunay mga han-ay sa petsa, usa ka payroll configuration nga adunay kondisyon nga mga lagda, usa ka CRM pipeline nga adunay branching logic - nagsulbad sa problema sa pag-parse. Ang 138,000+ ka tiggamit sa Mewayz's platform makamugna ug komplikado, structured nga datos kada adlaw. Ang pagsabot kung giunsa paghimo sa mga parser ang dili klaro nga input ngadto sa dili klaro nga istruktura mao ang kalainan tali sa pagtukod sa usa ka sistema nga maayo ang pagdumala sa mga sulud sa sulud ug usa nga makaguba sa higayon nga adunay mosulod sa usa ka petsa sa wala damha nga pormat.

Ang Maghuhubad: Diin Nabuhi ang Kodigo

Ang tighubad mao ang dapit diin mahitabo ang salamangka. Naglakaw kini sa AST, node sa node, ug nagpatuman niini. Ang usa ka numero nga node nagbalik sa kantidad niini. Ang usa ka binary operation node nag-evaluate sa wala ug tuo nga mga bata niini ug naghiusa kanila. Ang usa ka function call nangita sa function sa usa ka palibot, nagbugkos sa mga argumento, ug nagtimbang-timbang sa lawas. Sa usa ka dulaan nga lengguwahe, ang tibuok interpreter mahimong 200-300 ka linya — gamay ra nga mabutang sa imong ulo, pero kusog kaayo nga makadagan sa tinuod nga mga programa.

Adunay duha ka halapad nga mga pamaagi sa pagpatuman: mga tighubad nga naglakaw sa kahoy ug mga virtual nga makina sa bytecode. Ang mga tiglakaw sa kahoy mas simple apan mas hinay; direkta silang motabok sa AST. Ang Bytecode VMs nag-compile sa AST ngadto sa usa ka han-ay sa yano nga mga instruksyon (sama sa usa ka gamay nga pinulongan sa asembliya) ug ipatuman kini sa baylo, ang pagkakomplikado sa pagpatuman sa trading alang sa mas maayo nga performance. Ang CPython, ang standard nga pagpatuman sa Python, naggamit og bytecode VM. Ang Lua, usa sa labing episyente nga ma-embeddable nga mga lengguwahe, nagpayunir sa disenyo sa VM nga gibase sa rehistro nga nakaimpluwensya sa mga makina sa dula sa tibuok kalibotan.

Mahinungdanon nga pagsabot: Ang labing gamhanan nga mga galamiton sa negosyo dili ang adunay pinakadaghang bahin — sila ang adunay labing maayo nga internal nga "pinulongan" alang sa pagpahayag sa gikinahanglan sa mga tiggamit. Ang matag makina sa lagda, sistema sa pormula, ug tigtukod sa automation usa ka gamay nga tighubad nga nagtakuban. Ang kalidad sa maong tighubad nagtino kon ang himan motimbang gikan sa 10 ka tiggamit ngadto sa 100,000.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Mga Kalibutan ug Kasangkaran: Ang Nakatago nga Arkitektura sa Estado

Usa sa pinakalisud nga konsepto sa pagpatuman sa pinulongan — ug usa sa labing direktang magamit sa software sa negosyo — mao ang paagi sa pagdumala sa mga pinulongan pinaagi sa mga palibot ug sakup. Kung nagsulat ka usa ka variable nga buluhaton sa sulod sa usa ka function, kana nga variable dili kinahanglan nga mogawas ug i-overwrite ang usa ka butang sa tibuuk kalibutan. Kini morag klaro, apan ang pagpatuman niini sa husto nagkinahanglan og usa ka istruktura sa datos nga gitawag og kadena sa palibot: usa ka sumpay nga lista sa hash nga mga mapa diin ang matag ang-ang nagrepresentar sa usa ka sakup, ug ang mga variable lookup mosaka sa kadena hangtod makakita sila og usa ka tugma.

Kini nga sumbanan makita bisan asa sa maayong pagkadisenyo nga software. Ang mga permiso sa tiggamit sa usa ka plataporma sa negosyo parehas nga paagi — ang pag-access sa usa ka miyembro sa team matino pinaagi sa pagsusi una sa ilang mga indibidwal nga pagtugot, dayon ang mga pagtugot sa ilang tahas, dayon ang mga default sa organisasyon. Ang sistema sa module ni Mewayz, nga nagsangkap sa tanan gikan sa link-in-bio nga mga panid hangtod sa bug-os nga pagproseso sa payroll, naggamit sa layered nga configuration nga nagsalamin niining eksakto nga prinsipyo. Ang tag-iya sa negosyo nagtakda og mga default sa tibuok organisasyon, ang mga manedyer sa departamento mahimong mo-override sa piho nga mga setting, ug ang tagsa-tagsa nga mga tiggamit makahimo sa pag-customize sa ilang kaugalingong workspace — tanan walay mga panagsumpaki.

Ang pagkasayop sa scope sa usa ka programming language maoy hinungdan sa mga bug. Ang pagkasayup sa sakup sa usa ka plataporma sa negosyo hinungdan sa mga pagtulo sa datos, pag-usbaw sa pagtugot, ug ang klase sa kagubot sa operasyon nga naggasto sa tinuud nga salapi. Parehas ang mga leksyon sa matag lebel sa abstraction.

Unsa ang Tinuod nga Gitudlo Kanimo sa Pagtukod og Gamay nga Pinulongan

Kung wala ka pa makabuhat ug gamay nga programming language, ania ang konkretong gitudlo sa kasinatian — ug ngano nga hinungdanon kung ikaw usa ka developer, usa ka teknikal nga tigpasiugda, o usa ka tawo nga gusto lang makasabut sa mga himan nga ilang gigamit matag adlaw:

  • Pagkatukma sa panghunahuna: Dili ka mahimong dili klaro sa pagpasabot sa usa ka gramatika. Ang matag ambiguity sa imong detalye sa lengguwahe mahimong bug sa imong parser. Kini nga disiplina direkta nga nagbalhin ngadto sa pagsulat sa mas maayo nga mga spec, mas klaro nga dokumentasyon, ug mas tukma nga mga kinahanglanon sa feature.
  • Empatiya para sa mga tiggamit: Kung nagdesinyo ka og lengguwahe, nagdesinyo ka og interface para sa panghunahuna sa tawo. Makakat-on ka sa pagpangutana: "Unsa man ang gipasabot sa user ni niini?" — usa ka pangutana nga kinahanglan magduso sa matag desisyon sa produkto.
  • Performance intuition: Nahibal-an nimo kung ngano nga ang pipila nga mga operasyon paspas ug ang uban hinay, dili gikan sa pagbasa sa mga sukaranan apan gikan sa pagtan-aw sa eksakto kung pila ang mga lakang nga gihimo sa tighubad. Kini nakapahimo kanimo nga mas maayo sa pagdesinyo sa mga sistema nga sukdanan.
  • Paghanas sa pag-debug: Kung ang imong lengguwahe makahimo ug sayop nga output, wala kay katagoan. Walay gambalay nga mabasol, walay panagsumpaki sa bersyon sa librarya. Kini ang imong lohika, imong mga istruktura sa datos, imong algorithm. Naghimo kini og matang sa lawom nga kahanas sa pag-debug nga nagbulag sa maayo nga mga inhenyero gikan sa mga bantugan.
  • Apresasyon sa abstraction: Nakasabot ka nganong ang mas taas nga lebel nga mga pinulongan mihimo sa mga pagpili nga ilang gihimo — nganong ang JavaScript adunay mga pagsira, nganong gipili sa Python ang mahinungdanong whitespace, nganong anaa ang tigsusi sa pagpangutang ni Rust. Dili kini basta-basta nga mga desisyon; kini mga solusyon sa tinuod nga mga problema nga imong masugatan sa imong kaugalingong pagpatuman.

Gikan sa Dulaan nga mga Pinulongan hangtod sa Tinuod nga Kalibutan nga Automation

Ang gintang tali sa usa ka dulaan nga pinulongan ug usa ka makina sa automation sa produksiyon mas gamay kay sa gihunahuna sa kadaghanan. Ang Shopify's Liquid templating nga pinulongan nagsugod isip usa ka yano, luwas nga sistema sa template ug karon adunay gahum sa minilyon nga mga storefront. Ang workflow syntax sa GitHub Actions kay usa ka domain-specific nga pinulongan nga gitukod sa YAML. Gitugotan sa Stripe's Sigma query language ang mga financial team sa pagsukitsukit sa datos sa pagbayad nga walay pagsulat sa SQL. Ang matag usa niini nagsugod sa usa ka tawo nga nangutana: "Unsa ang pinakagamay, pinakasimple nga pinulongan nga makasulbad niining piho nga problema?"

Kini ang parehas nga pilosopiya luyo sa mga plataporma nga nagtumong sa pagkonsolida sa mga operasyon sa negosyo ngadto sa usa ka ekosistema. Kung ang Mewayz nagserbisyo sa usa ka freelancer nga nanginahanglan usa ka link-in-bio nga panid ugusa ka mid-size nga kompanya nga nagpadagan sa suweldo alang sa 50 ka mga empleyado sa tibuuk nga 207 nga mga module niini, ang nagpahiping hagit parehas nga giatubang sa matag tigdesinyo sa sinultian: giunsa nimo paghimo ang usa ka sistema nga igo nga yano alang sa mga nagsugod apan igo nga kusog alang sa komplikado nga mga kaso sa paggamit? Ang tubag, sama sa isulti kanimo sa bisan kinsa nga tigpatuman sa pinulongan, anaa sa hustong paagi sa paghimo sa mga primitives — gagmay, composable building blocks nga makombinar sa mga user sa mga paagi nga wala damha sa tigdesinyo.

Sa sunod higayon nga mag-configure ka og usa ka lagda sa automation, maghimo og custom nga dashboard, o mag-set up og conditional workflow sa bisan unsang himan sa negosyo, hinumdomi: nagsulat ka og programa sa lil' fun lang. Adunay usa nga nagdesinyo sa kana nga lengguwahe - ang lexer, parser, ug tighubad - aron mahimo ang imong katuyoan nga mapatuman. Ug ang kalidad sa ilang trabaho mao ang dili makita nga puwersa nga nagtino kung ang imong kasinatian gibati sama sa salamangka o kaalautan. Ang pagsabut niadtong mga guts, bisan sa lebel sa ibabaw, naghatag kanimo og usa ka labaw nga gahum: ang abilidad sa pagtan-aw sa makina ubos sa interface, sa pagtag-an kon asa kini mabuak, ug sa pagduso niini labaw pa kay sa iyang mga tigdesinyo sukad naghanduraw.

Pagtukod sa Imong Negosyo OS Karon

Gikan sa mga freelancer hangtod sa mga ahensya, ang Mewayz adunay gahum sa 138,000+ ka negosyo nga adunay 207 ka integrated modules. Pagsugod nga libre, pag-upgrade kung modako ka.

Paghimo ug Libre nga Account →

Mga Pangutana nga Kanunayng Gipangutana

Unsa ang "lil' fun langs" ug ngano nga kinahanglan kong magtagad?

Lil' fun langs mga gagmay, eksperimental nga programming language nga gihimo aron sa pagsuhid sa piho nga mga ideya o pagtudlo sa kinauyokan nga mga konsepto. Naglangkob sila gikan sa mga tighubad sa dulaan nga gisulat sa usa ka semana hangtod sa piho nga mga pinulongan sa domain (DSLs) nga gidisenyo alang sa pig-ot nga mga buluhaton. Ang pagsabut kung giunsa nila pagtrabaho naghatag kanimo og mas lawom nga panabut kung giunsa ang tanan nga software naglihok - lakip ang mga himan sa negosyo nga imong gisaligan matag adlaw. Kana nga kahibalo naghimo kanimo nga usa ka mas hait nga developer ug usa ka labi ka nahibal-an nga tighimog desisyon kung nagpili o nagtukod mga sistema sa automation.

Sa unsang paagi ang pagkat-on bahin sa mga internal nga pinulongan makatabang sa automation sa negosyo?

Kung nasabtan nimo ang mga konsepto sama sa pag-parse, ebalwasyon, ug mga tighubad, magsugod ka nga makakita sa automation nga lahi. Nahibal-an nimo ang mga pattern sa mga tigtukod sa workflow, template engine, ug sistema sa lagda. Ang mga plataporma sama sa Mewayz naggamit niining parehas nga mga prinsipyo sa ilang 207 nga mga module aron tugotan ka nga ma-automate ang pag-invoice, CRM workflows, ug daghan pa - tanan nga wala’y pagsulat nga code. Ang pagkahibalo sa mga sukaranan makatabang kanimo sa pagduso pa niini nga mga himan ug mas paspas nga masulbad ang mga isyu.

Kinahanglan ba ko og degree sa computer science aron makahimo og gamay nga pinulongan?

Dili gyud. Daghang mga developer ang nagtukod sa ilang unang interpreter sa usa ka semana gamit ang mga tutorial ug open-source nga mga giya. Ang mga pinulongan sama sa Python ug JavaScript naghimo niini nga diretso sa pagsulat sa usa ka batakang lexer, parser, ug evaluator. Ang katuyoan dili ang paghimo sa sunod nga sinultian sa produksiyon - kini ang pagkat-on pinaagi sa pagbuhat. Bisan ang usa ka yano nga lengguwahe sa calculator nagtudlo kanimo kung giunsa ang pag-parse ug pag-execute sa mga ekspresyon, mga kahanas nga direktang mobalhin sa pag-uswag sa tinuod nga kalibutan.

Makatabang ba kanako ang pagsabot sa mga DSL sa pagpili og mas maayong mga himan sa negosyo?

Sa hingpit. Daghang mga platform sa negosyo ang nag-embed sa mga pinulongan nga piho sa domain para sa mga pormula, mga filter, ug mga lagda sa workflow. Kung nahibal-an nimo kung giunsa ang pagtrabaho sa mga DSL sa ilawom sa hood, mahimo nimong susihon ang mga himan nga labi ka kritikal. Pananglitan, ang Mewayz nagtanyag usa ka komprehensibo nga OS sa negosyo nga nagsugod sa $ 19 / mo nga adunay built-in nga lohika sa automation sa mga module niini. Ang pagkahibalo sa mga konsepto sa DSL makatabang kanimo sa pagpahimulos sa mga bahin sa hingpit kaysa pagkubkob sa nawong.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 6,203+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,203+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime