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

Lil' Fun Langs' Guts

Fa'amatalaga

18 min read Via taylor.town

Mewayz Team

Editorial Team

Hacker News

Aisea e avea ai oe ma se Faufale Sili atu o le Va'ai I lalo o le Va'aiga o Gagana Fa'apolokalame Laiti

So'o se vaega o polokalame e te fa'aogaina - mai le CRM e fa'ata'ita'iina au fa'ata'ita'iga i le masini otometi e lafo pili i le vaeluapo - na fausia i se gagana fa'apolokalame. Ae pe na e mafaufau ea pe o le a le mea e fai ai se gagana fa'apolokalame tik? E le o le tele o meaola faanatura e pei o le Python poʻo le JavaScript, ae o mea laiti, faʻafefe, faʻafiafia uiga ese e fausia e le au atinaʻe i le faaiuga o le vaiaso e foia ai se faʻafitauli se tasi pe naʻo le aʻoaʻoina. O nei "lil' fun langs" - gagana meataalo, gagana fa'apitoa (DSLs), ma fa'amatala fa'aa'oa'oga - o lo'o ola ai nisi o manatu sili ona mata'ina i fa'asaienisi komepiuta. O le malamalama i o latou loto e le gata ina avea ai oe ma se fai polokalame sili atu; e matua suia ai le auala e te mafaufau ai e uiga i mea faigaluega fau fale, fa'autometi galuega, ma le mamanuina o faiga e aoga mo tagata.

O le a tonu le "Lil' Fun Langs"?

O le lalolagi polokalame e tumu i gagana e le'i fa'atatauina e fa'amalo ai sapalai gaosiga pe fa'agaoioia le faitau miliona o fefa'atauaiga. Gagana e pei o Lox (mai Robert Nystrom'sCrafting Interpreters), Monkey (mai Thorsten Ball'sWriting an Interpreter in Go), poʻo gagana tausua foʻi e pei o Brainfuck ma Chef o loʻo i ai e aʻoaʻo, e faʻafiafia, ma tuleia tuaoi o le uiga o le "gagana". O nei gagana laiti e aveese ai le lavelave o filifili mea faigaluega i le lalolagi moni ma fa'aalia ai le faiga fa'ainisinia o le auala e avea ai tulafono ma gaioiga.

Ae o le "lil' fun langs" e le gata i fa'atinoga fa'aa'oa'oga. O gagana fa'apitoa fa'apitonu'u e fa'amalosia ai nisi o meafaigaluega fa'apisinisi sili ona aoga i luga o le maketi. Soo se taimi lava e te tusia ai se fua fa'atatau i se ripoti, fa'amalamalama se tulafono fa'amama i lau kalani imeli, po'o le fa'atulagaina o se faiga fa'aautomatika i totonu o se tulaga e pei oMewayz, o lo'o e fegalegaleai ma se gagana la'ititi, fa'amoemoeina. O le 207 modules i totonu o Mewayz - e aofia ai le CRM, invoicing, HR, pulega o va'a, ma isi mea - fa'alagolago i masini tulafono fa'alotoifale ma fa'amatalaga fa'amatalaga o lo'o, i la latou autu, gagana laiti ua fuafuaina e tu'uina atu i tagata fa'aoga le mana e aunoa ma le mana'omia o se tikeri fa'asaienisi komepiuta.

O le malamalama i le tino o nei gagana e fa'aalia ai le mafua'aga e lagona ai e nisi mea faigaluega le fa'aogaina ae o isi e pei o le piiga ma se tusi lesona o lo'o tusia i se isi itu.

Le Lexer: Tu'ufa'atasia o Upu i Atoma

So'o se gagana, tusa lava po o le a le la'ititi, e amata i le la'asaga fa'avae e tasi: au'ili'iliga o le gagana, po'o le "lexing." E ave e le lexer se manoa mata'utia o mataitusi - e pei o total = price * quantity + tax - ma vaevae i ni pusi 'anoa e ta'ua o faailoga. E le'o popole le lexer i uiga. E na'o le fa'ailoa mai o le total o se fa'amatalaga, = o se tagata e fa'atino galuega, price o le isi fa'amatalaga, * o le fa'atele, ma isi.

O le fausiaina o se lexer mo se gagana itiiti e matua'i fa'amalieina. I lalo ifo o le 100 laina o code, e mafai ona e aʻoaʻoina se polokalame e iloa ai numera, manoa, upu autu, ma faʻagaioiga. O le faigofie o le manatu - e fa'amalosia oe e mafaufau po'o le a le seti aupito maualalo o "upu" e mana'omia e lau gagana. O le manatu lava lea e tasi e faʻaaoga pe a faʻatulagaina meafaigaluega e faʻaogaina e tagata faʻaoga. A fa'ataga e le masini masini a Mewayz se pisinisi la'ititi e fa'atulaga se tulafono e pei o le "pe a tuai le pili i le 7 aso, lafo mai imeli fa'amanatu," o lo'o fa'atonuina e le faiga lena tulafono i fa'ailoga fa'atulagaina e mafai ona fa'atino. O feso'ota'iga sili ona lelei e lagona le leai o se taumafaiga ona o se tasi na mafaufau loloto pe fa'apefea foliga la'ititi 'anoa o le fa'amoemoe o tagata fa'aoga.

Vaega: Liua Fa'ailoga Mafolafola I La'au Ola

A maua loa au fa'ailoga, e te mana'omia le fausaga. O le fa'avasegaina e fa'aliliuina se fa'asologa mafolafola o fa'ailoga i se Abstract Syntax Tree (AST) - o se fa'atusa fa'atulagaina e pu'eina sootaga i le va o vaega eseese o se fa'aaliga. O le faaupuga 3 + 4 * 5 e le na o se faasologa o faailoga e lima; o se la'au e pipii mau le fa'ateleina nai lo le fa'aopoopo, e maua ai le 23 nai lo le 35.

O iinei e maua ai le fiafia moni. Parsing algorithms pei recursive descent poʻo Pratt parsing o ni vaega aulelei o inisinia e fetaui i se faila e tasi ae mafai ona taulimaina kalama maofa lavelave. Fa'asolo fa'asolo, ae maise lava, faitau toetoe lava pei o se fa'amatalaga o le gagana lava ia — o galuega ta'itasi e fetaui ma le tulafono o le kalama, ma fa'asolo ai le fa'amaumauga a le tagata lava ia i se auala e seāseā maua i le atina'eina o polokalame.

O lesona mai le fa'avasegaina e fa'alautele mamao atu i tala atu o le mamanu o le gagana. So'o se faiga e fa'agasolo ai fa'aoga fa'atulagaina - o se pepa fa'amaufa'ailoga e iai aso, se fa'atonuga o totogi fa'atasi ai ma tulafono fa'atulafonoina, o se paipa CRM fa'atasi ai ma manatu fa'alafua - o lo'o fo'ia ai se fa'afitauli fa'avasega. O le 138,000+ tagata fa'aoga i luga ole laiga a Mewayz e fa'atupuina fa'amaumauga lavelave, fa'atulagaina i aso uma. O le malamalama pe fa'afefea ona fa'aliliuina e le au fa'asalalau mea fa'akomupiuta i totonu o se fausaga manino, o le eseesega lea i le va o le fauina o se faiga e taulimaina ma le fa'alelei mata'itusi ma se tasi e motusia i le taimi e ulufale ai se tasi i se aso i se fa'asologa e le'i mafaufauina.

O le Fa'aliliuga: O Fea e Ola Mai ai Tulafono

O le fa'aliliu upu o le mea lea e tupu ai le fa'amaneta. E savalia le AST, node i lea node, ma fa'atinona. O le numera numera e toe fa'afo'i lona tau. E iloilo e se node ta'i lua lana fanau agavale ma taumatau ma tu'ufa'atasia. O le vala'au fa'atino e su'e le galuega i totonu o se si'osi'omaga, fusifusia finauga, ma iloilo le tino. I se gagana meataalo, o le fa'aliliuupu atoa atonu e 200-300 laina - e la'ititi e taofi i lou ulu, ae lava le malosi e fa'atino ai polokalame moni.

E lua auala lautele e fa'atino ai: fa'aliliu upu ma le bytecode masini virtual. O tagata savavali i laʻau e faigofie ae faʻagesegese; latou te uia sa'o le AST. Bytecode VM e tuufaatasia le AST i se faasologa o faʻatonuga faigofie (pei o se gagana faʻapotopotoga laiti) ma faʻatino na mea, faʻalavelave faʻatinoga fefaʻatauaʻiga mo le faʻatinoina sili atu. CPython, le faʻatinoina o le Python masani, faʻaaogaina se bytecode VM. Lua, o se tasi o gagana e sili ona lelei e mafai ona fa'apipi'iina, na ia taulamua i se mamanu VM e fa'atatau i le resitara lea na a'afia ai masini ta'aloga i le lalolagi atoa.

Malamalamaaga autu: O meafaigaluega faapisinisi sili ona mamana e le o ni mea e sili ona tele - o mea ia e sili ona lelei i totonu "gagana" mo le faʻaalia o mea e manaʻomia moni e tagata faʻaoga. O masini tulafono uma, faiga faʻavae, ma fau masini faufale o se faʻaliliuupu laʻititi e faʻaogaina. O le lelei o lena fa'aliliuupu e iloa ai pe fua le meafaigaluega mai le 10 tagata fa'aoga i le 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 →

Si'osi'omaga ma Va'aiga: Le Fa'ata'ita'iga Natia a le Setete

O se tasi o manatu fa'a'ole'ole i le fa'atinoga o le gagana - ma o se tasi o fa'amatalaga e sili ona fa'atatau tonu i polokalama fa'apisinisi - o le fa'aogaina lea o gagana e fa'atautaia ai le tulaga e ala i si'osi'omaga ma le lautele. A e tusia se tofiga fesuisuiai i totonu o se galuega, e le tatau ona oso i fafo lena fesuiaiga ma toe tusi se mea i le lautele lautele. E foliga manino mai, ae o le fa'atinoina sa'o e mana'omia ai se fausaga fa'amaumauga e ta'ua o lesi'osi'omaga filifili: o se lisi feso'ota'i o fa'afanua hash lea e fa'atusaina ai la'asaga ta'itasi se lautele, ma su'esu'e fesuisuia'i e savali i luga le filifili se'ia maua se fetaui.

O lenei fa'ata'ita'iga e fa'aalia i so'o se mea i polokalama fa'apipi'i lelei. O fa'atagaga a le tagata fa'aoga i totonu o se fa'alapotopotoga fa'apisinisi e galue tutusa - o le avanoa a se sui o le 'au e fuafua e ala i le siakiina muamua oa latou fa'atagaga, ona fa'ataga lea a latou matafaioi, ona fa'aletonu ai lea o le fa'alapotopotoga. Mewayz's module system, lea e va'ava'ai mea uma mai itulau feso'ota'i-i-bio e o'o atu i le faagasologa atoa o totogi, e fa'aogaina ai le fa'avasegaga fa'apipi'i e fa'ata'ita'i ai lenei ta'iala tonu. E fa'atulaga e le pule o pisinisi fa'aletonu i totonu o le fa'alapotopotoga, e mafai e pule o matagaluega ona fa'asesēina fa'atonuga fa'apitoa, ma e mafai fo'i e tagata fa'aoga ta'ito'atasi ona fa'avasega a latou lava avanoa faigaluega - uma e aunoa ma ni fete'ena'iga.

O le fa'asesēina o le lautele ile gagana fa'apolokalame e mafua ai fa'aletonu. O le sese o le lautele i totonu o se pisinisi pisinisi e mafua ai le lepetia o faʻamatalaga, faʻatagaga faʻatagaga, ma le ituaiga o faʻalavelave faʻatinoina e tau ai tupe moni. O lesona e tutusa i la'asaga uma o le fa'asoa.

O le a le Mea e A'oa'oina Moni Oe e le Fausiaina o se Gagana Laiti

Afai e te le'i fauina lava se gagana fa'apolokalame la'ititi, o le mea lea o lo'o a'oa'o mai e le poto masani - ma pe aisea e taua ai pe o oe o se tagata e fa'atupuina, o se tagata fa'atekinisi, po'o se tasi e na'o le fia malamalama i meafaigaluega latou te fa'aaogaina i aso uma:

  • Sa'o o mafaufauga: E le mafai ona e fa'anenefu pe a fa'auigaina se kalama. So'o se fa'aletonu i lau gagana fa'amatalaga e avea ma se mea sese i lau parser. O lenei a'oa'iga e fa'afeiloa'i sa'o i le tusiaina o fa'amatalaga sili atu, fa'amaumauga manino, ma le sa'o o mea e mana'omia.
  • Alofaaga mo tagata fa'aoga: A e mamanuina se gagana, o lo'o e mamanuina se atina'e mo mafaufauga o tagata. E te aʻoaʻo e fesili: "O le a le uiga o le tagata faʻaogauigai lenei mea?" — o se fesili e tatau ona fa'aosoina fa'ai'uga uma o oloa.
  • Fa'aaliga fa'atino: E te a'oa'oina pe aisea e vave ai nisi fa'agaioiga ae fa'agesegese isi, e le mai le faitauina o fa'ailoga ae mai le va'ai tonu i le tele o la'asaga e faia e le fa'aliliu upu. Ole mea lea e sili atu ai lou fa'atulagaina o faiga fa'atusa.
  • Ta'upulepulepulepulepulega: A fa'agasolo sese lau gagana, e leai se mea e te lafi ai. E leai se fa'avae e tu'ua'ia, leai se fete'ena'iga o fa'amaumauga a le faletusi. O lau fa'atatau, au fa'amaumauga fa'amaumauga, lau algorithm. O le mea lea e fausia ai le ituaiga o tomai fa'a'ese'ese loloto e tu'u 'ese'ese ai inisinia lelei mai i latou lelei.
  • Fa'afetai mo le fa'asaoina: E te malamalama i le mafua'aga na faia ai e gagana maualuluga filifiliga na latou faia - aisea ua tapuni ai le JavaScript, aisea na filifilia ai e le Python avanoa avanoa, aisea ua i ai le siaki nono a Rust. E le o ni faaiuga fai fua; o vaifofo ia i fa'afitauli moni o le a e feagai i lau lava fa'atinoga.

Mai Gagana Meata'alo i le Fa'automeina Moni a le Lalolagi

O le va i le va o le gagana meataalo ma le masini otometi gaosiga e la'ititi nai lo le manatu o le to'atele. Shopify's Liquid fa'ata'ita'iga gagana na amata o se faiga fa'ata'ita'i faigofie, saogalemu ma ua fa'amalosia nei le faitau miliona o faleoloa. GitHub Actions' workflow syntax ose gagana fa'apitoa e fausia ile YAML. Ole gagana ole fesili ole Stripe's Sigma e mafai ai e 'au tau tupe ona su'esu'eina fa'amatalaga o totogi e aunoa ma le tusiaina o le SQL. O nei mea ta'itasi na amata i le fesili a se tasi: "O le a le gagana sili ona la'ititi ma faigofie e fo'ia ai lenei fa'afitauli fa'apitoa?"

O le filosofia lava lea o lo'o i tua o fa'avae e fa'amoemoe e fa'amautu fa'agaioiga pisinisi i totonu o se fa'anatura e tasi. A tautua Mewayz se freelancer e manaʻomia se itulau fesoʻotaʻi-i-biomase kamupani vaeluagalemu o loʻo faʻatautaia totogi mo le 50 tagata faigaluega i luga o ana 207 modules, o le luʻitau autu e tutusa lava ma le faʻafeagai o gagana taʻitasi: faʻafefea ona e fatuina se faiga e faigofie mo tagata amata ae lava le malosi mo faʻaoga faʻalavelave mataupu? O le tali, e pei ona ta'u atu e so'o se tagata e fa'atinoina le gagana, o lo'o taoto i le fa'asa'o o mea muamua - o poloka faufale laiti e mafai ona tu'ufa'atasia e tagata fa'aoga i ni auala e le'i mafaufauina e le tagata mamanu.

O le isi taimi e te fa'atulaga ai se tulafono fa'a-oto'oto, fau se lisi fa'aaganu'u, po'o le fa'atūina o se fa'asologa o galuega i so'o se meafaigaluega fa'apisinisi, manatua: o lo'o e tusia se polokalame i se lil' fun lang. Na mamanuina e se tasi le loto o lena gagana - o lona lexer, parser, ma le faamatalaupu - ina ia mafai ona faatino lou faamoemoe. Ma o le lelei o la latou galuega o le malosi le vaaia lea e iloa ai pe o lou aafiaga e pei o se togafiti poʻo le pagatia. O le malamalama i na pupuni, e oo lava i se tulaga maualuga, e te maua ai se malosi sili: o le mafai ona vaai i le masini i lalo ifo o le atinaʻe, e vaʻai ai po o fea o le a malepe ai, ma tulei atili ai nai lo le mea na mafaufauina e le au mamanu.

Fausia Lau Pisinisi OS i Aso Nei

Mai tagata tuto'atasi i lala sooupu, Mewayz fa'aola le 138,000+ pisinisi fa'atasi ai ma le 207 fa'atasi. Amata fua, fa'aleleia pe a e tuputupu a'e.

Fau se Teugatupe Saoloto →

Fesili e Fai soo

O a "lil' fun langs" ma aisea e tatau ai ona ou popole?

Lil' fun langs o gagana fa'apolokalame fa'ata'ita'i ua fausia e su'esu'e ai manatu fa'apitoa po'o le a'oa'o atu o manatu autu. E amata mai i fa'aliliu upu meataalo na tusia i le fa'ai'uga o le vaiaso i gagana fa'apitoa (DSLs) ua fuafuaina mo galuega vaapiapi. O le malamalama i le auala latou te galue ai e te maua ai le malamalama loloto i le auala e faʻaogaina ai polokalama uma - e aofia ai meafaigaluega faʻapisinisi e te faʻalagolago i ai i aso uma. O lena malamalama e avea ai oe ma tagata e sili atu le ma'ai o le atina'e ma e sili atu le poto e fai fa'ai'uga pe a filifilia po'o le fauina o masini masini.

E fa'afefea ona fesoasoani le a'oa'oina e uiga i le gagana i totonu ile fa'autometi pisinisi?

A e malamalama i manatu e pei o le fa'avasegaina, iloiloga, ma fa'aliliuupu, e amata ona ese lau va'ai i le masini. E te iloa faʻataʻitaʻiga i tagata fau galuega, masini faʻataʻitaʻiga, ma faiga faʻatonutonu. O fa'avae e pei o Mewayz e fa'aogaina nei lava fa'avae i luga o latou 207 modules e fa'ataga ai oe e fa'aautomatika le pili, fa'asologa o galuega CRM, ma isi mea - uma e aunoa ma le tusiaina o fa'ailoga. O le iloaina o mea fa'avae e fesoasoani ia te oe e tulei atili ai nei mea faigaluega ma fofo vave ai faafitauli.

Ou te mana'omia se fa'ailoga fa'akomepiuta fa'asaienisi e fausia ai se gagana itiiti?

E leai lava. O le tele o tagata atiaʻe e fausia a latou faʻamatalaga muamua i le vaiaso e tasi e faʻaaoga ai aʻoaʻoga ma taʻiala tatala. O gagana e pei o le Python ma le Javascript e fa'afaigofie ai ona tusia se lexer, parser, ma le su'esu'e. O le sini e le o le fatuina o le isi gagana gaosiga - ae o le aʻoaʻoina e ala i le faia. E o'o lava i se gagana calculator faigofie e a'oa'o ai oe i le fa'avasegaina ma le fa'atinoina o fa'amatalaga, o tomai e fa'afeiloa'i sa'o i le atina'e o le lalolagi moni.

E mafai e le malamalama i DSL ona fesoasoani ia te a'u e filifili ai mea faigaluega sili atu mo pisinisi?

E matua'i. O le tele o fa'alapotopotoga fa'apisinisi e fa'apipi'i gagana fa'apitoa mo fa'ata'ita'iga, filiga, ma tulafono tau galuega. A e malamalama i le auala e galue ai DSL i lalo o le pulou, e mafai ona e suʻesuʻeina meafaigaluega e sili atu ona faitio. Mo se faʻataʻitaʻiga, ua ofoina atu e Mewayz se pisinisi faʻapitoa OS e amata ile $19/mo faʻatasi ai ma le faʻaogaina o masini masini i luga o ana modules. O le iloaina o manatu o le DSL e fesoasoani ia te oe e fa'aogaina atoatoa na foliga nai lo le sasaina.

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