Lil' Anigye Langs' Guts
Nsɛm a wɔka
Mewayz Team
Editorial Team
Nea Enti a Sɛ Wohwɛ Programming Languages Nketewa Hood ase a, ɛma Woyɛ Ɔdansifo Pa
Software biara a wode bedi dwuma — efi CRM a ɛdi wo leads akyi kosi automation engine a ɛde invoices mena anadwo fã — wɔde programming kasa na ɛyɛɛ no. Nanso so woasusuw nea ɛma programming kasa tick ho pɛn? Ɛnyɛ abɔde a nkwa wom akɛse te sɛ Python anaa JavaScript, na mmom nketewa, scrappy, anigye a ɛyɛ nwonwa a developers si wɔ dapɛn awiei de di ɔhaw biako ho dwuma anaasɛ wɔde sua kɛkɛ. Saa "lil' fun langs" yi — agode kasa, domain-specific kasa (DSLs), ne nhomasua nkyerɛasefo — ne baabi a adwene a ɛyɛ fɛ sen biara wɔ kɔmputa nyansahu mu no bi te. Wɔn awotwaa a wobɛte ase no mma wobɛyɛ programmer pa kɛkɛ; ɛsakra sɛnea wususuw sɛnea wobɛkyekye nnwinnade, adwumayɛ nhyehyɛe a ɛyɛ adwuma wɔ ɔkwan a ɛyɛ adwuma so, ne nhyehyɛe ahorow a ɛyɛ adwuma ma nnipa ankasa ho nhyehyɛe titiriw.
Dɛn Pɛpɛɛpɛɛ ne "Lil' Fun Langs"?
Programming wiase no ayɛ ma wɔ kasa horow a na wɔanhyɛ da sɛ ɛbɛma production servers ahoɔden anaasɛ ɛbɛma nnwuma ɔpepem pii ayɛ adwuma. Kasa ahorow te sɛ Lox (a efi Robert Nystrom Crafting Interpreters), Monkey (a efi Thorsten Ball Writing an Interpreter in Go), anaa mpo aseresɛm kasa te sɛ Brainfuck ne Chef wɔ hɔ sɛ ɛbɛkyerɛkyerɛ, agye ani, na ɛbɛpia nea "kasa" kyerɛ mpo ahye. Saa kasa nketewa yi yi wiase ankasa nnwinnade nkɔnsɔnkɔnsɔn a ɛyɛ den no fi hɔ na ɛda mfiridwuma a ɛnyɛ den a ɛfa sɛnea mmara no bɛyɛ adeyɛ ho adi.
Nanso "lil' fun langs" nyɛ nkyerɛkyerɛ apɔw-mu-teɛteɛ nkutoo. Kasa ahorow a ɛfa domain pɔtee bi ho ma adwumayɛ nnwinnade a etu mpɔn sen biara a ɛwɔ gua so no bi nya ahoɔden. Bere biara a wobɛkyerɛw fomula wɔ spreadsheet mu, akyerɛkyerɛ filter mmara mu wɔ wo email client mu, anaa wobɛhyehyɛ automation adwumayɛ kwan wɔ platform te sɛ Mewayz mu no, wo ne kasa ketewa bi a wɔasisi no atirimpɔw bi redi nkitaho. Module 207 a ɛwɔ Mewayz mu — a ɛfa CRM, invoicing, HR, fleet management, ne nea ɛkeka ho — de wɔn ho to emu mmara engine ne expression parsers a, wɔ wɔn mu titiriw no, ɛyɛ kasa nketewa a wɔayɛ sɛ ɛbɛma wɔn a wɔde di dwuma no tumi a enhia sɛ wonya kɔmputa ho adesua abodin krataa.
Sɛ yɛte kasa ahorow yi nipadua mu a, ɛda nea enti a nnwinnade bi te nka sɛ ɛyɛ nea wotumi te ase bere a afoforo te nka sɛ wɔne nhoma bi a wɔakyerɛw wɔ afã foforo mu bɛpere aperepere.
The Lexer: Nsɛmfua a Wɔpaapae Mu Yɛ Atom
Kasa biara, ɛmfa ho sɛnea ɛyɛ ketewa no, fi ase wɔ anammɔn titiriw koro no ara so: nsɛmfua mu nhwehwɛmu, anaa "lexing." Lexer fa nkyerɛwde a ɛyɛ raw string — biribi te sɛ total = price * quantity + tax — na ɔkyekyɛ mu yɛ no chunks a ntease wom a wɔfrɛ no tokens. Lexer no nnya nteaseɛ ho asɛm de besi nnɛ. Ɛkyerɛ kɛkɛ sɛ total yɛ nkyerɛkyerɛmu, = yɛ dwumadie dwumadie, price yɛ nkyerɛkyerɛmu foforɔ, * yɛ dodoɔ, ne nea ɛkeka ho.
Sɛ wokyekye lexer ma kasa ketewa bi a, ɛyɛ nwonwa sɛ ɛma abotɔyam. Wɔ koodu nkyerɛwde a ennu 100 mu no, wubetumi akyerɛkyerɛ dwumadi bi sɛnea ɛbɛyɛ a ebehu nɔma, nhama, nsɛmfua atitiriw, ne nea wɔde di dwuma. Nea ɛyɛ mmerɛw no ne asɛm no — ɛhyɛ wo ma wususuw nea "nsɛmfua" a ɛba fam koraa a wo kasa hia no ho. Saa adwene koro yi ara fa ho bere a wɔreyɛ nnwinnade a wɔde di dwuma no. Sɛ Mewayz automation engine ma adwuma ketewa wura bi de mmara bi si hɔ te sɛ "sɛ invoice no twam nnafua 7 a, fa nkaebɔ email mena," nhyehyɛe no reyɛ komm lexing saa mmara no mu ayɛ no token ahorow a wɔahyehyɛ a ebetumi ayɛ adwuma wɔ so. Nkitahodi a eye sen biara no te nka sɛ mmɔdenbɔ nnim pɛpɛɛpɛ efisɛ obi susuw ho yiye wɔ sɛnea ɔdefo adwene no afã nketewa a ntease wom no te ho.
Parsing: Token a Ɛyɛ Tratraa a Wɔdan no Nnua a Ɛte Ase
Sɛ wonya token wie a, wuhia nhyehyɛe. Parsing dane token ahorow a ɛtoatoa so a ɛyɛ tratraa ma ɛyɛ Abstract Syntax Tree (AST) — gyinabea a ɛwɔ nhyehyɛe mu a ɛkyere abusuabɔ a ɛda asɛmfua bi afã horow ntam. Asɛmfua 3 + 4 * 5 nyɛ token anum a ɛtoatoa so kɛkɛ; ɛyɛ dua a dodow a wɔkyekyere no denneennen sen nkabom, na ɛma 23 sen sɛ ɛbɛyɛ 35.
Eha na nneɛma nya anigye ankasa. Parsing algorithms te sɛ recursive descent anaa Pratt parsing yɛ engineering asinasin a ɛyɛ fɛ a ɛfata fael biako nanso etumi di kasa mmara a ɛyɛ nwonwa a ɛyɛ nwonwa ho dwuma. Recursive descent parsers, titiriw, ɛkame ayɛ sɛ kenkan te sɛ kasa no ankasa ho nkyerɛkyerɛmu — dwumadie biara ne kasa mmara bi hyia, na ɛma koodu no kyerɛw ne ho wɔ ɔkwan a ɛntaa nsi wɔ softwea nkɔsoɔ mu.
Asuade a efi parsing mu no trɛw kɔ akyiri sen kasa nhyehyɛe. Nhyehyɛe biara a ɛyɛ nhyehyɛe a wɔde hyɛ mu — booking kratasin a ɛwɔ date ranges, payroll nhyehyɛe a ɛwɔ conditional mmara, CRM pipeline a branching logic — redi parsing haw bi ho dwuma. Nnipa 138,000+ a wɔde di dwuma wɔ Mewayz platform no so no yɛ data a ɛyɛ den, a wɔahyehyɛ da biara. Sɛnea parsers dane ambiguous input kɔ ambiguous structure mu nteaseɛ yɛ nsonsonoeɛ a ɛda system a ɛkyekyere a ɛdi edge cases ho dwuma fɛfɛɛfɛ ne deɛ ɛbubu berɛ a obi hyɛ date bi mu wɔ format a wɔnhwɛ kwan mu.
Nkyerɛasefoɔ: Baabi a Mmara no Ba Nkwa
Nkyerɛasefoɔ no ne baabi a nkonyaayie no si. Ɛnantew AST no so, node biara, na yɛ no. Nɔma node bi san de ne bo no ba. Binary operation node hwehwɛ ne benkum ne nifa mma mu na ɛka bom. Dwumadie frɛ hwehwɛ dwumadie no wɔ tebea bi mu, kyekyere akyinnyegyeɛ, na ɛsɔ nipadua no hwɛ. Wɔ agodeɛ kasa mu no, ebia nsɛm asekyerɛfoɔ no nyinaa bɛyɛ nkyerɛwdeɛ 200-300 — ketewa a ɛbɛtumi akura wo tirim, nanso ɛwɔ tumi a ɛbɛtumi ayɛ nhyehyɛeɛ ankasa.
Akwan mmienu a ɛtrɛ wɔ hɔ a wɔfa so di dwuma: nnua-nantew nkyerɛaseɛ ne bytecode virtual mfiri. Nnua so nantew yɛ mmerɛw nanso wɔyɛ brɛoo; wɔfa AST no mu tẽẽ. Bytecode VMs boaboa AST no ano ma ɛyɛ akwankyerɛ a ɛnyɛ den nnidiso nnidiso (te sɛ nhyiam kasa ketewaa bi) na wɔyɛ saa mmom, di gua wɔ dwumadie a ɛyɛ den ma adwumayɛ a ɛyɛ nwonwa kɛseɛ. CPython, Python dwumadie a ɛyɛ gyinapɛn no, de bytecode VM di dwuma. Lua, kasa a wɔde hyɛ mu a ɛyɛ adwuma yiye no mu biako, na ɛyɛɛ akwampaefo wɔ VM nhyehyɛe a egyina register so a enyaa agodie engine ahorow so nkɛntɛnso wɔ wiase nyinaa.
a wɔde ahyɛ muna ɛkyerɛ sɛ woayɛNhumu titiriw: Adwumayɛ nnwinnade a tumi wom sen biara no nyɛ nea ɛwɔ nneɛma pii — ɛyɛ nea ɛwɔ mu "kasa" a eye sen biara a wɔde bɛda nea wɔn a wɔde di dwuma no hia ankasa adi. Mmara engine, formula nhyehyɛe, ne automation builder biara yɛ nsɛm asekyerɛfo ketewaa bi a wasakra ne ho. Saa nkyerɛasefoɔ no su na ɛkyerɛ sɛ adwinnadeɛ no bɛserɛ afiri nnipa 10 a wɔde di dwuma kɔsi 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 →
Nneɛma a Atwa Yɛn Ho Ahyia ne Nea Ɛwɔ: Ɔman no Nsiesiei a Ahintaw
Nsusuwii a ɛyɛ anifere sen biara wɔ kasa a wɔde di dwuma mu no mu biako — ne nea wɔde di dwuma tẽẽ wɔ adwumayɛ softwea mu no mu biako — ne sɛnea kasa ahorow di ɔman ho dwuma denam nneɛma a atwa yɛn ho ahyia ne ne kɛse so. Sɛ wo kyerɛw variable assignment wɔ function bi mu a, ɛnsɛ sɛ saa variable no leak out na ɛkyerɛw biribi so wɔ global scope no mu. Eyi te sɛ nea ɛda adi pefee, nanso sɛ wɔde bedi dwuma yiye a, ɛhwehwɛ sɛ wɔyɛ data nhyehyɛe a wɔfrɛ no nneɛma a atwa yɛn ho ahyia nkɔnsɔnkɔnsɔn: hash map ahorow a wɔaka abom a level biara gyina hɔ ma scope, na variable lookups nantew kɔ nkɔnsɔnkɔnsɔn no so kosi sɛ wobehu nea ɛne no hyia.
Saa nhwɛsoɔ yi da adi wɔ baabiara wɔ softwea a wɔayɛ no yie mu. Ɔdefoɔ tumi krataa a ɛwɔ adwumayɛ kwan so no yɛ adwuma saa ara — wɔkyerɛ kuw no muni bi kwan a ɔbɛfa so denam wɔn ankorankoro tumi krataa a wodi kan hwɛ so, afei wɔn dwumadie tumi krataa, afei ahyehyɛdeɛ no defaults. Mewayz module nhyehyɛe a ɛfa biribiara ho fi link-in-bio nkratafa so kosi akatua ho nhyehyɛe a edi mũ so no de nhyehyɛe a wɔayɛ no ntoatoaso a ɛkyerɛ nnyinasosɛm pɔtee yi di dwuma. Adwumawura bi hyehyɛ ahyehyɛdeɛ no nyinaa defaults, department managers tumi bu nhyehyɛɛ pɔtee bi so, na ankorankoro dwumadiefoɔ bɛtumi ayɛ wɔn ankasa adwumayɛbea — ne nyinaa a ntawntawdie biara nni mu.
Scope a wobɛnya wɔ programming kasa mu no de mfomsoɔ ba. Sɛ wonya scope wrong wɔ business platform mu a, ɛde data leaks, permission nkɔanim, ne adwumayɛ mu basabasayɛ a ɛgye sika ankasa ba. Adesua no yɛ pɛ wɔ abstraction level biara mu.
Nea Kasa Ketekete a Wobɛkyekye Kyerɛ Wo Ankasa
Sɛ woankyekyere programming kasa ketewa bi da a, nea osuahu no kyerɛkyerɛ no pɔtee ni — ne nea enti a ɛho hia sɛ woyɛ developer, technical founder, anaa obi a ɔpɛ sɛ ɔte nnwinnade a wɔde di dwuma da biara no ase kɛkɛ:
- Adwene mu pɛpɛɛpɛ: Worentumi nyɛ nea emu nna hɔ bere a worekyerɛkyerɛ kasa mmara mu no. Biribiara a emu nna hɔ wɔ wo kasa nkyerɛkyerɛmu mu no bɛyɛ bɔne wɔ wo parser no mu. Saa nteɛsoɔ yi dan kɔ tẽẽ kɔkyerɛw specs a ɛyɛ papa, nkrataa a emu da hɔ, ne feature ahwehwɛdeɛ a ɛyɛ pɛpɛɛpɛ.
- Empathy for users: Sɛ woreyɛ kasa bi a, woreyɛ interface bi ama onipa adwene. Wosua sɛ wubebisa sɛ: "Dɛn na nea ɔde di dwuma no kyerɛ wɔ eyi mu?" — asemmisa a ɛsɛ sɛ ɛkanyan adeyɛ biara gyinaesi.
- Adwumayɛ mu nhumu: Wosua nea enti a oprehyɛn ahorow bi yɛ ntɛmntɛm na afoforo nso yɛ brɛoo, ɛnyɛ akenkan a wobɛkenkan na mmom efi anammɔn dodow pɔtee a nkyerɛasefo no tu mu. Wei ma woyɛ yie wɔ nhyehyɛeɛ a ɛyɛ scale.
- Debugging mastery: Sɛ wo kasa no ma nsɛm a ɛnteɛ ba a, wunni baabiara a wode wo ho bɛhintaw. Framework biara nni hɔ a ɛsɛ sɛ wɔde asodi no to so, nhomakorabea version ntawntawdi biara nni hɔ. Ɛyɛ wo logic, wo data structures, wo algorithm. Wei kyekye debugging ahokokwaw a emu dɔ a ɛtetew mfiridwumayɛfo pa ne akɛse ntam.
- Anisɔ ma abstraction: Wote nea enti a kasa a ɛkorɔn no yɛɛ nea wɔpaw no ase — nea enti a JavaScript wɔ closures, nea enti a Python paw whitespace a ɛho hia, nea enti a Rust borrow checker no wɔ hɔ. Eyinom nyɛ gyinaesi ahorow a wɔyɛ no kwa; wɔyɛ ɔhaw ankasa a wobɛhyia wɔ w'ankasa wo dwumadie mu ano aduru.
Efi Agode Kasa so kosi Wiase Ankasa Automation
Nsonsonoe a ɛda agode kasa ne production automation engine ntam no sua sen sɛnea nnipa dodow no ara susuw. Shopify Liquid templating kasa no fii ase sɛ template nhyehyɛe a ɛnyɛ den, ahobammɔ wom na mprempren ɛma sotɔɔ ahorow ɔpepem pii tumi. GitHub Actions' adwumayɛ nhyehyɛe syntax yɛ domain-specific kasa a wɔasi wɔ YAML so. Stripe Sigma asɛmmisa kasa no ma sikasɛm akuw bisabisa sikatua ho nsɛm a wonkyerɛw SQL. Eyinom mu biara fii ase bere a obi bisae sɛ: "Dɛn ne kasa ketewa, a ɛnyɛ den a edi ɔhaw pɔtee yi ho dwuma?"
Eyi yɛ nyansapɛ koro no ara a ɛwɔ platform ahorow a ɛwɔ botae sɛ ɛbɛka adwumayɛ dwumadi ahorow abom ayɛ no abɔde a nkwa wom nhyehyɛe biako akyi. Sɛ Mewayz som obi a ɔyɛ adwuma a ɔde ne ho a ohia link-in-bio krataafa ne adwumakuw a ɛwɔ mfinimfini a ɛhwɛ akatua a wɔde ma adwumayɛfo 50 wɔ ne module 207 no nyinaa mu a, asɛnnennen a ɛwɔ ase no yɛ nea kasa ho nhyehyɛe biara hyia: wobɛyɛ dɛn ayɛ nhyehyɛe a ɛyɛ mmerɛw ma wɔn a wɔrefi ase nanso ɛwɔ tumi a ɛdɔɔso ma nsɛm a ɛyɛ den a wɔde di dwuma? Mmuaeɛ no, sɛdeɛ kasa dwumadie biara bɛka akyerɛ wo no, gyina sɛ wobɛnya primitives no yie — adansiɛ nketewa, a wɔtumi hyehyɛ a wɔn a wɔde di dwuma no bɛtumi aka abom wɔ akwan a ɔdebɔfoɔ no anhwɛ kwan da so.
Bere foforo a wobɛhyehyɛ automation mmara, ayɛ custom dashboard, anaasɛ wobɛhyehyɛ conditional adwumayɛ nhyehyɛe wɔ adwumayɛ adwinnade biara mu no, kae: worekyerɛw program bi wɔ lil' fun lang mu. Obi yɛɛ saa kasa no awotwaa — ne lexer, parser, ne interpreter — sɛnea ɛbɛyɛ a w’adwene no bɛyɛ nea wotumi di ho dwuma. Na wɔn adwuma no su ne tumi a aniwa nhu a ɛkyerɛ sɛ ebia wo suahu no te sɛ nkonyaayi anaasɛ awerɛhow. Sɛ wote saa guts no ase, wɔ soro mpo a, ɛma wunya tumi kɛse: tumi a wode hu afiri no wɔ interface no ase, kyerɛ baabi a ɛbɛbubu, na woapia no akɔ akyiri sen sɛnea wɔn a wɔyɛɛ no no susuwii pɛn.
Yɛ Wo Adwumayɛ OS Ɛnnɛ
Efi freelancers so kosi nnwumakuw so, Mewayz ma nnwuma 138,000+ tumi a ɛwɔ module 207 a wɔaka abom. Fi ase kwa, upgrade bere a woanyin.
Yɛ Akontaabu a Wontua hwee →Nsɛmmisa a Wɔtaa Bisa
Dɛn ne "lil' fun langs" na adɛn nti na ɛsɛ sɛ medwene ho?
Lil' fun langs yɛ nhyehyeɛ kasa nketewa a wɔsɔ hwɛ a wɔasi sɛ wɔde bɛhwehwɛ adwene pɔtee bi mu anaa wɔbɛkyerɛkyerɛ nsusuiɛ titire. Wɔn fi agode nkyerɛasefo a wɔkyerɛw wɔ dapɛn awiei so kosi kasa horow a ɛfa domain pɔtee bi ho (DSL) a wɔayɛ ama nnwuma teateaa so. Sɛ wote sɛnea wɔyɛ adwuma ase a, ɛma wunya nhumu a emu dɔ wɔ sɛnea softwea nyinaa yɛ adwuma ho — a adwumayɛ nnwinnade a wode wo ho to so da biara da ka ho. Saa nimdeɛ no ma woyɛ developer a ɔyɛ nnam ne gyinaesifoɔ a ɔwɔ nimdeɛ kɛseɛ berɛ a worepaw anaa woresi automation systems.
Ɔkwan bɛn so na kasa mu nneɛma ho adesua boa wɔ adwumayɛ mu automation mu?
Sɛ wote nsusuwii te sɛ parsing, evaluation, ne interpreters ase a, wufi ase hu automation wɔ ɔkwan soronko so. Wohu nhwɛsoɔ wɔ adwumayɛ nhyehyɛeɛ adansifoɔ, nsusuiɛ engine, ne mmara nhyehyɛeɛ mu. Platforms te sɛ Mewayz de saa nnyinasosɛm koro yi ara di dwuma wɔ wɔn modules 207 no nyinaa mu de ma wo automate invoicing, CRM workflows, ne nea ɛkeka ho — ne nyinaa a wonkyerɛw code. Sɛ wunim mfitiaseɛ no a, ɛboa wo ma wopia saa nnwinnadeɛ yi kɔ akyiri na wosiesie ɔhaw ahodoɔ ntɛmntɛm.
So mehia kɔmputa ho adesua abodin krataa na ama matumi akyekye kasa ketewaa bi?
Ɛnyɛ saa koraa. Nnipa pii a wɔyɛ adwuma no de nkyerɛkyerɛ ne akwankyerɛ a wɔabue ano na ɛkyekye wɔn nsɛm asekyerɛfo a odi kan wɔ dapɛn awiei biako mu. Kasa te sɛ Python ne JavaScript ma ɛyɛ mmerɛw sɛ wobɛkyerɛw mfitiase lexer, parser, ne evaluator. Botaeɛ no nyɛ sɛ wobɛbɔ production kasa a ɛdi hɔ no — ɛyɛ sɛ wobɛsua denam yɛ a wobɛyɛ so. Kasa a ɛnyɛ den a wɔde bu akontaa mpo kyerɛkyerɛ wo sɛnea wɔkyekyɛ nsɛmfua mu na wɔyɛ no, ahokokwaw a ɛkɔ wiase nkɔso ankasa mu tẽẽ.
So DSLs ntease betumi aboa me ma mapaw adwumayɛ nnwinnade a eye?
Ɛyɛ saa koraa. Adwumayɛbea ahorow pii de kasa ahorow a ɛfa domain pɔtee bi ho hyɛ mu ma fomula, filters, ne adwumayɛ ho mmara. Sɛ wote sɛnea DSL ahorow yɛ adwuma wɔ hood no ase ase a, wubetumi asusuw nnwinnade ho yiye. Sɛ nhwɛso no, Mewayz de adwumayɛ OS a ɛkɔ akyiri a efi ase fi $19/mo a wɔde automation logic a wɔasisi mu wɔ ne module ahorow no nyinaa mu ma. DSL adwene a wunim no boa wo ma wode saa nneɛma no di dwuma koraa sen sɛ wobɛtwetwe ne ho.
We use cookies to improve your experience and analyze site traffic. Cookie Policy