Lil' fun langs' guts
Kɔmɛnt dɛn
Mewayz Team
Editorial Team
Wetin mek fɔ Pik Ɔnda di Hud fɔ Smɔl Progrɛm Langwej dɛn De Mek Yu Bi Bɛtɛ Bilda
Ɛvri sɔftwɛl we yu de yuz — frɔm di CRM we de trak yu lida dɛn to di ɔtomɛshɔn injin we de sɛn invɔys na midnayt — dɛn bil am wit programin langwej. Bɔt yu dɔn ɛva wɔnda wetin kin mek programin langwej tik? Nɔto di big big ikɔsistɛn dɛn lɛk Paytɔn ɔ JavaSkript, bɔt di smɔl, skrap, gladi gladi weda wan dɛn we divɛlɔpa dɛn kin bil insay wan wikɛnd fɔ sɔlv wan prɔblɛm ɔ jɔs fɔ lan. Dɛn "lil' fun langs" ya — tɔys langwej dɛm, domɛyn-spɛsifi k langwej dɛm (DSL dɛm), ɛn ɛdyukeshɔn intaprita dɛm — na de sɔm pan di mɔs elegant aydia dɛm na kɔmpyuta sayɛns de liv. We yu ɔndastand dɛn gut nɔ jɔs de mek yu bi bɛtɛ programma; i de chenj di fכndamεntli aw yu de tink bכt fכ bil tul dεm, כtomat wokfכ, εn disayn sistεm dεm we rili wok fכ pipul dεm.
Wetin Eksaktli Na "Lil' Fun Langs"?
Di programin wɔl ful-ɔp wit langwej dɛn we nɔ bin ɛva min fɔ pawa prodakshɔn sava ɔ fɔ prosɛs bɔku bɔku transakshɔn dɛn. Langwej dɛm lɛk Lox (frɔm Robert Nystrom in Crafting Interpreters), Monkey (frɔm Thorsten Ball in Writing an Interpreter in Go), ɔ ivin jok langwej dɛm lɛk Brainfuck ɛn Chef de fɔ tich, fɔ ɛnjɔy, ɛn fɔ push di bɔda dɛm fɔ wetin "langwej" ivin min. Dɛn smɔl langwej ya de pul di kɔmplisiti we rial-wɔl tulchen dɛn gɛt ɛn dɛn de ɛksplɔz di raw mɛkaniks fɔ aw kɔd de bi akshɔn.
Bot "lil' fun langs" no de limited to edukeshonal eksasaiz. Domɛyn-spɛsifi k langwej dɛn de pawa sɔm pan di biznɛs tul dɛn we de wok fayn pas ɔl na di makit. Ɛvri tɛm we yu rayt fɔmula na sprɛdshit, difayn filta lɔ na yu imel klaynt, ɔ kɔnfigyut ɔtomɛshɔn wokflɔ na pletfɔm lɛk Mewayz, yu de intarakt wit smɔl langwej we dɛn bil fɔ di rizin. Di 207 modul dɛm we de insay Mewayz — we de span CRM, invois, HR, flit manejmɛnt, ɛn mɔ — de dipen pan intanɛnt rul injin ɛn ɛksprɛshɔn parsa dɛm we, na dɛn kɔr, smɔl smɔl langwej dɛm we dɛn mek fɔ gi yuzman dɛn pawa we nɔ nid kɔmpyuta sayɛns digri.
We yu ɔndastand di anatomi fɔ dɛn langwej ya, yu go si wetin mek sɔm tul dɛn kin fil se dɛn izi fɔ ɔndastand we ɔda wan dɛn kin fil lɛk fɔ rɛslɛt wit wan manyual we dɛn rayt na ɔda dimɛnshɔn.
Di Lɛksa: Brek Wɔd dɛn to Atɔm
Ɛvri langwej, ilɛksɛf i smɔl, i kin bigin wit di sem fawndeshɔnal stɛp: lɛksikɔlɔjik analisis, ɔ "lɛksin." Leksa tek wan raw string of karakta — sɔntin lɛk total = prays * kwantiti + taks — ɛn brok am to mininful chunks we dɛn kɔl token. Di lexer nɔ bisin bɔt minin yet. I jɔs de aydentify se total na aydentifaya, = na asaynmɛnt ɔpreshɔn, price na ɔda aydentifaya, * na multiplikashɔn, ɛn ɔda tin dɛn.
Fɔ bil lexer fɔ wan smɔl langwej na sɔprayz satisfay. Insay kɔd we nɔ rich 100 layn dɛn, yu kin tich wan program fɔ no nɔmba dɛn, string dɛn, ki wɔd dɛn, ɛn ɔpreshɔn dɛn. Di simpul tin na di pɔynt — i de fos yu fɔ tink bɔt wetin di absɔlɔb minim sɛt fɔ "wɔd" dɛn we yu langwej nid. Dis sem tinkin kin apin we dɛn de disayn tul dɛn we pɔsin kin yuz. We Mewayz in ɔtomɛshɔn injin de mek wan smɔl biznɛs ɔna sɛt wan lɔ lɛk "we invɔys dɔn ovadu bay 7 dez, sɛn mɛmba imel," di sistɛm de kwayɛt wan de leksi da lɔ de insay strɔkchɔ token dɛn we i kin akt pan. Di bɛst intafɛs dɛn kin fil se dɛn nɔ gɛt ɛni ɛfɔt prɛsishɔn bikɔs sɔmbɔdi bin tink dip wan bɔt aw di smɔl smɔl mininful yunit dɛn fɔ yuz intɛnt tan lɛk.
Parsing: Fɔ Tɔn Flat Token To Liv Tri
Wan tɛm we yu gɛt token, yu nid strɔkchɔ. Parsing de transfɔm wan flat sikyud fɔ token dɛn to wan Abstrakt Sintaks Tri (AST) — wan hayarkikal ripreshɔn we de kapchɔ di rilayshɔn bitwin difrɛn pat dɛn na wan ɛksprɛshɔn. Di ɛksplɛshɔn 3 + 4 * 5 nɔto jɔs wan sikwins we gɛt fayv token dɛn; na tik usay mכltiplikashכn de tay tayt pas adishכn, we de prodyuz 23 insted fכ 35.
Dis na di say we tin kin rili fayn. Parsing algorithms lɛk rikɔrsiv dɛsɛnt ɔ Pratt parsing na elegant pies dɛn fɔ injinɛri we fit insay wan fayl yet kin ebul fɔ handle sɔprayz kɔmpleks grama dɛn. Rikɔrsiv dɛsɛnt parsa dɛn, mɔ, de rid ɔlmost lɛk wan spɛsifikɛshɔn fɔ di langwej sɛf — ɛni fɛnshɔn kɔrɛkt to wan grama lɔ, we de mek di kɔd sɛlf-dɔkyumɛnt insay wan we we nɔ kin bɔku na sɔftwɛl divɛlɔpmɛnt.
Di lɛsin dɛn frɔm parsing de go fa fawe pas langwej dizayn. Ɛni sistɛm we de prosɛs strɔkchɔ input — wan bukin fɔm wit deti rɛnj, wan pe rɔl kɔnfigyushɔn wit kɔndishɔnal lɔ dɛn, wan CRM paiplayn wit branching lɔjik — de sɔlv wan parsing prɔblɛm. Di 138,000+ yuza dɛm na Mewayz in pletfɔm de jenarayz kɔmpleks, strɔkchɔ data ɛvride. Ɔndastand aw parsers de tɔn ambiguous input to unambiguous structure na di difrɛns bitwin fɔ bil wan sistɛm we de handle ed kes grasfully ɛn wan we de brok di moment we pɔsin ɛnta deti insay wan fɔmat we dɛn nɔ ɛkspɛkt.
Di Intaprita: Usay Kɔd De Kam Alayv
Di intaprita na di say we di majik de apin. I de waka di AST, node bay node, ɛn ɛksɛkyut am. Wan nɔmba node de gi bak in valyu. Wan baynary ɔpreshɔn node de evalyu in lɛft ɛn rayt pikin dɛn ɛn jɔyn dɛn. Wan fɛnshɔn kɔl de luk di fɛnshɔn na wan ɛnvayrɔmɛnt, tay argumɛnt dɛn, ɛn evalyu di bɔdi. Insay tɔys langwej, di wan ol intaprita kin bi 200-300 layn — smɔl fɔ ol na yu ed, yet pawaful fɔ rul rial program.
Tu brayt we dɛn de fɔ ɛksɛkushɔn: intaprita dɛn we de waka wit tik ɛn baytkɔd vayrɔyal mashin dɛn. Di wan dɛn we de waka na tik kin simpul bɔt dɛn kin slo; dɛn kin travul di AST dairekt wan. Baytkɔd VM dɛn kɔmpilayt di AST insay wan sikwins fɔ simpul instrɔkshɔn dɛn (lɛk wan smɔl asɛmbli langwej) ɛn ɛksɛkutiv dɛn insted, tredin implimɛnt kɔmplisiti fɔ dramatik bɛtɛ pefɔmɛns. CPython, di standad Paytɔn implimɛnt, de yuz baytkɔd VM. Lua, wan pan di langwej dɛm we dɛn kin ebul fɔ ɛmbas, na in bin payɔnia fɔ mek wan VM dizayn we de bays pan rɛjista we bin afɛkt di gem injin dɛn ɔlsay na di wɔl.
Ki insayt: Di pawaful biznɛs tul dɛm nɔto di wan dɛm we gɛt di mɔs ficha dɛm — na di wan dɛm we gɛt di bɛst intanɛnt "langwej" fɔ ɛksprɛs wetin di wan dɛn we de yuz am rili nid. Ɛvri rul injin, fɔmula sistɛm, ɛn ɔtomɛshɔn bilda na smɔl intaprita we de mek lɛk se i nɔ de si. Di kwaliti fɔ da intaprita de de sho if di tul de skel frɔm 10 pipul dɛn we de yuz am to 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 →Envayrɔmɛnt ɛn Skɔp: Di Hiden Akitekchɔ fɔ Stet
Wan pan di triki kɔnsɛpt dɛn na langwej implimɛnt — ɛn wan pan di wan dɛn we dɛn kin yuz dairekt wan fɔ biznɛs softwe — na aw langwej dɛn de manej stet tru ɛnvayrɔmɛnt ɛn skɔp. We yu rayt wan vɛriɔbul asaynmɛnt insay wan fɛnshɔn, da vɛriɔbul de nɔ fɔ lik aut ɛn ɔvarayt sɔntin na di glob ɔl skɔp. Dis de saund klia, bɔt fɔ impruv am kɔrɛkt wan nid fɔ gɛt wan data strɔkchɔ we dɛn kɔl envayrɔmɛnt chen: wan linked list fɔ hash map usay ɛni lɛvul de ripresent wan skɔp, ɛn vɛriɔbul lukɔp dɛn de waka ɔp di chen te dɛn fɛn wan mach.
Dis patna de sho ɔlsay na sɔftwɛl we dɛn dɔn mek fayn fayn wan. Yuz pɔmishɔn dɛn na biznɛs pletfɔm de wok di sem we — dɛn kin no di akses we wan tim mɛmba gɛt bay we dɛn chɛk dɛn wan wan pɔmishɔn dɛn fɔs, dɔn dɛn rol in pɔmishɔn dɛn, dɔn di ɔganayzeshɔn in difɔlt dɛn. Mewayz in modul sistem, we de span ɔltin frɔm link-in-bio pej dɛn to ful pe rɔl prɔsesin, de yuz layt kɔnfigyushɔn we de mirɔ dis ɛksaktɔ prinsipul. Wan biznɛs ɔna de sɛt ɔganayzeshɔn-wayd difɔlt, dipatmɛnt manija dɛn kin ɔvalayz sɔm patikyula sɛtin dɛn, ɛn wan wan yuza dɛn kin kɔstɔmayz dɛn yon wokples — ɔl dis nɔ gɛt kɔnflikt.
Fɔ gɛt skɔp rɔng na programin langwej kin mek bɔg. Fɔ gɛt skɔp rɔng na biznɛs pletfɔm kin mek data lik, pɔmishɔn eskalayt, ɛn di kayn opareshɔnal chaos we de kɔst rial mɔni. Di lɛsin dɛn na di sem na ɛvri lɛvul fɔ abstrakshɔn.
Wetin Fɔ Bil Smɔl Langwej Rili Tich Yu
If yu nɔ ɛva bil smɔl programin langwej, na wetin di ɛkspiriɛns de tich kɔnkrit wan — ɛn wetin mek i impɔtant if yu na divɛlɔpa, tɛknikal faunda, ɔ pɔsin we jɔs want fɔ ɔndastand di tul dɛn we dɛn de yuz ɛvride:
- we dɛn kɔl
- Prɛsishɔn fɔ tink: Yu nɔ kin bi vayg we yu de difayn grama. Ɛvri ambigwiti na yu langwej spɛsifikɛshɔn kin bi bɔg na yu parsa. Dis disiplin de transfa dairekt to rayt bɛtɛ spɛshal, klia dɔkyumentri, ɛn mɔ prɛsis ficha rikwaymɛnt.
- Empathy for users: We yu disayn langwej, yu de disayn intafeys fɔ mɔtalman tink. Yu lan fɔ aks: "Wetin di pɔsin we de yuz am min wit dis?" — wan kwɛshɔn we fɔ drɛb ɛvri prɔdak disizhɔn.
- Pɔfɔmɛnshɔn intuishɔn: Yu kin lan wetin mek sɔm ɔpreshɔn dɛn kin fast ɛn ɔda wan dɛn kin slo, nɔto frɔm we yu rid bɛnchmak bɔt frɔm we yu si ɛksaktɔli ɔmɔs stɛp di intaprita de tek. Dis de mek yu bɛtɛ fɔ disayn sistɛm dɛn we de skel.
- Dibugging mastery: We yu langwej de prodyuz rɔng autput, yu nɔ gɛt say fɔ ayd. No framework nɔ de fɔ blem, no laybri vɛshɔn kɔnflikt nɔ de. Na yu lɔjik, yu data strɔkchɔ, yu algɔritm. Dis de bil di kayn dip dibɔg skil we de separet gud injinia frɔm big wan dɛn.
- Apreshɔn fɔ abstrakshɔn: Yu ɔndastand wetin mek ay-lɛv langwej dɛn mek di chukchuk dɛn we dɛn bin du — wetin mek JavaSkript gɛt kloz, wetin mek Paytɔn pik impɔtant wayt spɛs, wetin mek Rust in borrow checker de. Dis nɔto tin dɛn we pɔsin kin disayd fɔ du bay wilful; na sɔlv fɔ rial prɔblɛm dɛn we yu go mit na yu yon implimɛnt.
Frɔm Tɔy Langwej to Rial-Wɔl Ɔtomɛshɔn
Di gap bitwin wan tɔys langwej ɛn wan prodakshɔn ɔtomɛshɔn injin smɔl pas aw bɔku pipul dɛn kin tink. Shopify in Liquid tɛmplatin langwej bin stat as simpul, sef tɛmplat sistɛm ɛn naw i de pawa bɔku bɔku stofrɔnt dɛn. GitHub Actions in wokflɔ sintaks na domɛyn-spɛsifi k langwej we dɛn bil pan YAML. Stripe in Sigma kwɛstyɔn langwej de mek faynɛns tim dɛn intarog pemɛnt data we dɛn nɔ rayt SQL. Ɛni wan pan dɛn tin ya bigin wit sɔmbɔdi we aks: "Wetin na di smɔl, simpul langwej we de sɔlv dis patikyula prɔblɛm?"
Dis na di sem filɔsofi biɛn pletfɔm dɛn we de aim fɔ kɔnsolidɛt biznɛs ɔpreshɔn insay wan ikɔsistɛn. We Mewayz de sav frilansa we nid link-in-bio pej ɛn wan mid-sayz kɔmni we de rul pe fɔ 50 wokman dɛn akɔdin to in 207 modul dɛm, di ɔndalayn chalenj na di sem wan we ɛvri langwej disayna de gɛt: aw yu go mek wan sistɛm we simpul fɔ di wan dɛn we de bigin fɔ yuz yet we pawaful fɔ kɔmpleks yus kes dɛm? Di ansa, as ɛni langwej implimɛnt go tɛl yu, de fɔ mek di primitiv dɛn rayt — smɔl, kɔmpozibl bildin blɔk dɛn we yuza dɛn kin jɔyn insay we dɛn we di disayna nɔ ɛva tink.
Di nɛks tɛm we yu kɔnfigyut ɔtomɛshɔn lɔ, bil kɔstɔm dɛshbɔd, ɔ sɛt ap kɔndishɔnal wokflɔ na ɛni biznɛs tul, mɛmba: yu de rayt program insay wan lil’ fun lang. Sɔmbɔdi disayn da langwej de in gut — in leksa, parsa, ɛn intaprita — fɔ mek yu intent ɛgzibit. Ɛn di kwaliti fɔ dɛn wok na di pawa we wi nɔ de si we de sho if yu ɛkspiriɛns fil lɛk majik ɔ sɔfa. We yu ɔndastand dɛn gut dɛn de, ivin na sɔfa lɛvɛl, i de gi yu wan supapawa: di ebul fɔ si di mashin ɔnda di intafɛs, fɔ tɔk usay i go brok, ɛn fɔ push am fa pas aw di wan dɛn we mek am bin ɛva imajin.
Bil Yu Biznɛs OS Tide
Frɔm frilansa to ɛjɛnshi, Mewayz de pawa 138,000+ biznɛs wit 207 intagreted modul. Start fri, ɔpgrɛd we yu de gro.
Kriɛt Fri Akɔn →Kwɛshɔn dɛn we dɛn kin aks bɔku tɛm
Wetin na "lil' fun langs" en wetin mek a fo kia?
Lil' fun langs na smɔl, ɛkspirimɛnt programin langwej dɛm we dɛn bil fɔ fɛn spɛshal aydia ɔ tich kɔr kɔnsɛpt dɛm. Dɛn kin kɔmɔt frɔm tɔys intaprita dɛn we dɛn kin rayt insay wikɛnd to domɛyn-spɛsifi k langwej dɛn (DSL) we dɛn mek fɔ smɔl wok dɛn. We yu ɔndastand aw dɛn de wok, dat de mek yu no mɔ bɔt aw ɔl di softwe dɛn de wok — inklud di biznɛs tul dɛn we yu de abop pan ɛvride. Dat no de mek yu bi shap divɛlɔpa ɛn pɔsin we sabi disayd fɔ du sɔntin we yu de pik ɔ bil ɔtomɛshɔn sistɛm.
Aw fɔ lan bɔt langwej intanɛnt de ɛp wit biznɛs ɔtomɛshɔn?
We yu ɔndastand kɔnsɛpt dɛn lɛk parsing, ɛvalueshɔn, ɛn intaprita, yu kin bigin fɔ si ɔtomɛshɔn difrɛn we. Yu no di patɛns dɛn na di wokflɔ bilda dɛn, tɛmplat injin dɛn, ɛn rul sistɛm dɛn. Plɛtfɔm dɛn lɛk Mewayz de yuz dɛn sem prinsipul ya akɔdin to dɛn 207 mɔdyul dɛn fɔ mek yu ɔtomayz invɔys, CRM wokflɔ, ɛn mɔ — ɔl dis we yu nɔ rayt kɔd. We yu no di fawndeshɔnal tin dɛn, dat de ɛp yu fɔ push dɛn tul ya mɔ ɛn sɔlv prɔblɛm dɛn kwik kwik wan.
A nid kɔmpyuta sayɛns digri fɔ bil wan smɔl langwej?
Nɔto so atɔl. Bɔku divɛlɔpa dɛn kin bil dɛn fɔs intaprita insay wan wikɛnd we dɛn de yuz tich ɛn opin-sɔs gayd. Langwej dɛn lɛk Paytɔn ɛn JavaSkript de mek am izi fɔ rayt wan besik lɛksa, parsa, ɛn ɛvaluaytɔ. Di gol nɔto fɔ mek di nɛks prodakshɔn langwej — na fɔ lan bay we yu de du. Ivin wan simpul kɔlkyulɛta langwej de tich yu aw dɛn de pars ɛn ɛksɛkutiv ɛksprɛshɔn dɛn, skil dɛn we de transfa dairekt to rial-wɔl divɛlɔpmɛnt.
Fɔ ɔndastand DSL dɛn kin ɛp mi fɔ pik bɛtɛ biznɛs tul dɛn?
Na so i bi. Bɔku biznɛs pletfɔm dɛn kin ɛmbas domɛyn-spɛsifi k langwej dɛn fɔ fɔmula, filta, ɛn wokflɔ lɔ dɛn. We yu ɔndastand aw DSL dɛn de wok ɔnda di hud, yu kin ebul fɔ evalyu di tul dɛn mɔ krichɔ wan. Fɔ ɛgzampul, Mewayz de gi wan kɔmprɛhɛnsif biznɛs OS we de stat na $19/mo wit bilt-in ɔtomɛshɔn lɔjik akɔdin to in mɔdyul dɛn. We yu no DSL kɔnsɛpt dɛn, dat de ɛp yu fɔ yuz dɛn ficha dɛn de ful wan pas fɔ skrach di sɔfa.
We use cookies to improve your experience and analyze site traffic. Cookie Policy