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

Lil' Fun Langs' Guts

Комментарийлер

1 min read Via taylor.town

Mewayz Team

Editorial Team

Hacker News

Эмне үчүн кичинекей программалоо тилдеринин астында көрүү сизди мыкты куруучу кылат

Сиз колдонгон программалык камсыздоонун ар бир бөлүгү - сиздин лидерлериңизге көз салган CRMден түн жарымында эсеп-фактураларды жөнөтүүчү автоматташтырылган кыймылдаткычка чейин - программалоо тили менен курулган. Бирок сиз качандыр бир кезде программалоо тилин белги кылат деп ойлонуп көрдүңүз беле? Python же JavaScript сыяктуу масштабдуу экосистемалар эмес, бирок иштеп чыгуучулар бир көйгөйдү чечүү үчүн же жөн эле үйрөнүү үчүн дем алыш күндөрү курган кичинекей, бышык, укмуштай кызыктай системалар. Бул "көңүлдүү тилдер" - оюнчук тилдер, домендик тилдер (DSLs) жана билим берүү котормочулары - информатикадагы эң элеганттуу идеялардын кээ бирлери жашайт. Алардын ички дүйнөсүн түшүнүү сени жакшы программист кылып койбойт; ал инструменттерди куруу, жумуш процесстерин автоматташтыруу жана чындыгында адамдар үчүн иштеген системаларды долбоорлоо тууралуу көз карашыңызды түп тамырынан бери өзгөртөт.

"Lil' Fun Langs" деген эмне?

Программалоо дүйнөсү эч качан өндүрүш серверлерин иштетүүгө же миллиондогон транзакцияларды иштетүүгө арналбаган тилдерге толгон. Локс сыяктуу тилдер (Роберт НистромдунТилмечтик котормочуларынан), Маймыл (Торстен БоллдунГодо котормочу жазуудан) же атүгүл Brainfuck жана Chef сыяктуу тамаша тилдери "тил" деген эмнени билдирерин үйрөтүү, көңүл ачуу үчүн жана чек араларды кеңейтүү үчүн бар. Бул кичинекей тилдер чыныгы дүйнөдөгү инструменттердин татаалдыгын жок кылат жана коддун аракетке айланышынын чийки механикасын ачып берет.

Бирок "Lil' fun langs" билим берүү көнүгүүлөрү менен эле чектелбейт. Доменге тиешелүү тилдер рыноктогу эң эффективдүү бизнес куралдарынын айрымдарын иштетет. Электрондук жадыбалга формула жазган сайын, электрондук почта кардарыңызда чыпкалоо эрежесин аныктаганыңызда же Mewayz сыяктуу платформада автоматташтырылган иш процессин конфигурациялаганыңызда, сиз кичинекей, максатка ылайыктуу тил менен иштешесиз. Mewayz ичиндеги 207 модулдар — CRM, эсеп-фактура, HR, флотту башкаруу жана башкаларды камтыган — ички эрежелердин кыймылдаткычтарына жана экспресс талдоочуларына таянышат, алар өзөктөрүн компьютер илиминин даражасын талап кылбастан колдонуучуларга күч берүү үчүн иштелип чыккан кичинекей тилдер болуп саналат.

Бул тилдердин анатомиясын түшүнүү эмне үчүн кээ бир инструменттер интуитивдик сезилет, ал эми башкалары башка өлчөмдө жазылган окуу куралы менен күрөшкөндөй сезилет.

Лексер: Сөздөрдү атомдорго бөлүү

Ар бир тил, канчалык кичине болсо да, ошол эле фундаменталдуу кадамдан башталат: лексикалык талдоо же "лексинг." Лексер символдордун чийки саптарын алат — total = price * quantity + tax сыяктуу бир нерсе - жана аны токендер деп аталган маанилүү бөлүктөргө бөлөт. Лексер азырынча маанисине маани бербейт. Ал жөн гана total - идентификатор, = - дайындоо оператору, price - башка идентификатор, * - көбөйтүү, жана башкалар.

Кичинекей тил үчүн лексерин түзүү таң калыштуу түрдө канааттандырарлык. Коддун 100дөн аз саптарында сиз программаны сандарды, саптарды, ачкыч сөздөрдү жана операторлорду таанууга үйрөтө аласыз. Жөнөкөйлүк - бул сиздин тилиңизге "сөздөрдүн" абсолюттук минималдуу топтому эмнеге муктаж экендиги жөнүндө ойлонууга мажбурлайт. Ушундай эле ой жүгүртүү колдонуучуга багытталган куралдарды иштеп чыгууда колдонулат. Mewayzтин автоматташтырылган кыймылдаткычы чакан бизнестин ээсине "эсеп-фактуранын мөөнөтү 7 күнгө кечиккенде, эскертме электрондук кат жөнөтүү" сыяктуу эрежени орнотууга уруксат бергенде, система бул эрежени түзүмдүк белгилерге акырын киргизет. Кимдир бирөө колдонуучунун ниетинин эң кичинекей маанилик бирдиктери кандай болоору жөнүндө терең ойлонгондуктан эң мыкты интерфейстер оңой эмес.

Талдоо: Жалпак токендерди тирүү дарактарга айлантуу

Токендериңиз болгондон кийин, сизге структура керек. Талдоо токендердин жалпак ырааттуулугун абстракттуу синтаксис дарагына (AST) айлантат — сөз айкашынын ар кандай бөлүктөрүнүн ортосундагы мамилелерди чагылдырган иерархиялык өкүлчүлүк. 3 + 4 * 5 туюнтмасы жөн гана беш токендин ырааттуулугу эмес; бул 35тин ордуна 23тү пайда кылып, көбөйтүү кошууга караганда катуураак туташтырылган дарак.

Бул жерде иш чындап кызыктуу болот. Рекурсивдүү түшүү же Пратт талдоо сыяктуу талдоо алгоритмдери бир файлга туура келген, бирок таң калыштуу татаал грамматикаларды чече ала турган инженердиктин кооз бөлүктөрү. Айрыкча, рекурсивдүү ылдый талдоочулар тилдин өзүнүн спецификациясы сыяктуу окушат — ар бир функция грамматикалык эрежеге туура келет, бул программалык камсыздоону иштеп чыгууда сейрек кездешүүчү жол менен кодду өзүн-өзү документтештирүүгө мүмкүндүк берет.

Талдоодон алынган сабактар ​​тилди долбоорлоодон алыс. Структураланган киргизүүнү иштеткен ар кандай система — дата диапазону менен брондоо формасы, шарттуу эрежелери бар эмгек акы конфигурациясы, тармакталган логикасы бар CRM конфигурациясы — талдоо маселесин чечүүдө. Mewayz платформасындагы 138 000+ колдонуучу күн сайын татаал, структураланган маалыматтарды жаратат. Талдоочулар эки ача маанидеги киргизүүнү бир түшүнүктүү структурага кантип айландырарын түшүнүү - бул четки учурларды кылдаттык менен иштеткен системаны куруу менен кимдир бирөө күтүлбөгөн форматта датаны киргизген учурду бузган системанын ортосундагы айырма.

Котормочу: Код кайдан жанданат

Котормочу - бул сыйкыр болгон жерде. Ал AST, түйүн боюнча басып жүрөт жана аны аткарат. Сан түйүнү өз маанисин кайтарат. Бинардык операция түйүнү өзүнүн сол жана оң балдарын баалайт жана аларды бириктирет. Функция чакырыгы функцияны чөйрөдө издейт, аргументтерди бириктирет жана денени баалайт. Оюнчук тилинде айтканда, котормочу толугу менен 200-300 сап болушу мүмкүн — башыңызга кармай турганчалык кичинекей, бирок реалдуу программаларды иштетүү үчүн күчтүү.

Аткаруу үчүн эки кеңири ыкма бар: дарак менен жүрүүчү котормочулар жана байт коддуу виртуалдык машиналар. Дарак менен жүргөндөр жөнөкөй, бирок жайыраак; алар түз АСТ аркылуу өтүшөт. Bytecode VM'лери ASTти жөнөкөй көрсөтмөлөрдүн ырааттуулугуна (кичинекей ассемблер тили сыяктуу) түзөт жана анын ордуна аларды ишке ашырат, кескин жакшыраак иштөө үчүн ишке ашыруунун татаалдыгын соодалашат. CPython, стандарттуу Python ишке ашыруу, байт код VM колдонот. Луа, эң эффективдүү кыстарыла турган тилдердин бири, дүйнө жүзүндөгү оюн кыймылдаткычтарына таасир эткен реестрге негизделген VM дизайнында пионер болуп чыкты.

💡 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 →

Негизги түшүнүк: Эң күчтүү бизнес куралдары өзгөчөлүктөргө ээ эмес — алар колдонуучуларга иш жүзүндө эмне керек экенин билдирүү үчүн эң мыкты ички "тилге" ээ. Ар бир эреже кыймылдаткычы, формулалар системасы жана автоматташтыруу куруучу - бул кичинекей котормочу. Бул котормочунун сапаты куралдын 10 колдонуучудан 100 000ге чейин масштабын аныктайт.

Айлана-чөйрө жана масштаб: Мамлекеттин жашыруун архитектурасы

Тилди ишке ашыруудагы эң татаал түшүнүктөрдүн бири - жана бизнес программалык камсыздоосуна түздөн-түз колдонулуучу түшүнүктөрдүн бири - тилдер чөйрө жана масштаб аркылуу абалды кантип башкарары. Функциянын ичинде өзгөрмө дайындоо жазганыңызда, ал өзгөрмө агып кетпеши жана глобалдык масштабдагы нерсенин үстүнөн жазылбашы керек. Бул ачык угулат, бирок аны туура ишке ашыруу чөйрө чынжыры деп аталган маалымат структурасын талап кылат: ар бир деңгээл масштабды чагылдырган хэш карталардын байланышкан тизмеси жана өзгөрмөлүү издөөлөр дал келгенин тапканга чейин чынжырды басып өтүшөт.

Бул үлгү бардык жерде жакшы иштелип чыккан программалык камсыздоодо көрүнөт. Бизнес платформасындагы колдонуучунун уруксаттары дал ушундай иштейт — команда мүчөсүнүн кирүү мүмкүнчүлүгү адегенде алардын жеке уруксаттарын, андан кийин алардын ролунун уруксаттарын, анан уюмдун демейки жөндөөлөрүн текшерүү менен аныкталат. Mewayzдин био баракчаларынан баштап эмгек акыны толук иштетүүгө чейин бардыгын камтыган модулдук системасы дал ушул принципти чагылдырган катмарлуу конфигурацияны колдонот. Бизнестин ээси жалпы уюмдагы демейки параметрлерди коёт, бөлүмдүн менеджерлери атайын жөндөөлөрдү жокко чыгара алат жана жеке колдонуучулар өздөрүнүн иш мейкиндигин ыңгайлаштыра алышат — баары чыр-чатаксыз.

Программалоо тилинде масштабды туура эмес алуу мүчүлүштүктөрдү пайда кылат. Бизнес-платформада чөйрөнү туура эмес алуу маалыматтардын агып кетишине, уруксаттын күчөшүнө жана реалдуу акчаны талап кылган операциялык башаламандыкка алып келет. Сабактар абстракциянын бардык деңгээлинде бирдей.

Кичинекей тилди куруу сизге эмнени үйрөтөт

Эгер сиз эч качан кичинекей программалоо тилин кура элек болсоңуз, бул жерде тажрыйба конкреттүү түрдө эмнеге үйрөтөт — жана сиз иштеп чыгуучу, техникалык негиздөөчү же алар күн сайын колдонгон куралдарды түшүнгүсү келген адам экениңиз эмне үчүн маанилүү:

  • Ойдун тактыгы: Грамматиканы аныктоодо бүдөмүк боло албайсыз. Тил спецификацияңыздагы ар бир бүдөмүк талдоочуңуздагы катага айланат. Бул дисциплина түздөн-түз жакшыраак спецификацияларды жазууга, айкыныраак документацияга жана өзгөчөлүктөргө талаптарды тактоого өтөт.
  • Колдонуучулар үчүн эмпатия: Сиз тилди долбоорлоодо, сиз адамдын ой жүгүртүүсү үчүн интерфейсти иштеп жатасыз. Сиз: "Колдонуучу муну менен эмнени айткысы келет?" — ар бир продукт чечим чыгарууга тийиш болгон суроо.
  • Аткаруу интуициясы: Эмне үчүн кээ бир операциялар тез, ал эми башкалары жай болорун эталондорду окуудан эмес, котормочунун так канча кадам жасаганын көрүүдөн билесиз. Бул масштабдуу системаларды долбоорлоодо жакшыраак кылат.
  • Мүчүлүштүктөрдү оңдоо чеберчилиги: Сиздин тилиңиз туура эмес жыйынтык чыгарса, жашыра турган жериңиз жок. Айыпталуучу негиз жок, китепкана версиясы боюнча конфликт жок. Бул сиздин логикаңыз, маалымат структураларыңыз, алгоритмиңиз. Бул жакшы инженерлерди улуулардан айырмалаган терең мүчүлүштүктөрдү оңдоо жөндөмүн түзөт.
  • Абстракция үчүн ыраазычылык: Сиз эмне үчүн жогорку деңгээлдеги тилдер өздөрү тандап алганын түшүнөсүз — эмне үчүн JavaScript жабылганын, эмне үчүн Python олуттуу боштуктарды тандап алганын, эмне үчүн Rust's карыз текшерүүчүсү бар экенин түшүнөсүз. Бул өзүм билемдик эмес чечимдер; алар өзүңүздүн ишке ашырууңузда жолуга турган реалдуу көйгөйлөрдүн чечимдери.

Оюнчук тилдеринен реалдуу дүйнөдөгү автоматташтырууга

Оюнчук тили менен өндүрүштү автоматташтыруу кыймылдаткычынын ортосундагы ажырым көпчүлүк адамдар ойлогондон кичине. Shopify's Liquid шаблон тили жөнөкөй, коопсуз шаблон системасы катары башталып, азыр миллиондогон дүкөндөрдүн маңдайкы беттерин иштетет. GitHub Actions' иш процессинин синтаксиси YAMLде курулган доменге тиешелүү тил. Stripe's Sigma суроо тили каржылык топторго SQL жазуусу жок төлөм маалыматтарын суракка алууга мүмкүнчүлүк берет. Алардын ар бири кимдир бирөөнүн суроосу менен башталды: "Бул конкреттүү маселени чечкен эң кичинекей, эң жөнөкөй тил кайсы?"

Бул бизнес операцияларын бирдиктүү экосистемага консолидациялоого багытталган платформалардын артында ошол эле философия. Mewayz фрилансерге жана 207 модулу боюнча 50 кызматкерге эмгек акы төлөгөн орто компанияга жана шилтемеси керек болгон фрилансерди тейлегенде, ар бир тил дизайнери туш болгон кыйынчылык: кантип жаңыдан баштагандар үчүн жөнөкөй, бирок татаал колдонуу учурлары үчүн күчтүү системаны түзө аласыз? Жооп, ар бир тилди ишке ашыруучу сизге айта тургандай, примитивдерди туура алууда жатат — колдонуучулар дизайнер эч качан күтпөгөн жолдор менен бириктире ала турган кичинекей, түзүлүүчү курулуш блоктору.

Кийинки жолу сиз автоматташтыруу эрежесин конфигурациялаганыңызда, ыңгайлаштырылган башкаруу панелин курганыңызда же кандайдыр бир бизнес инструментинде шарттуу иш агымын койгонуңузда, эсиңизде болсун: сиз кызыктуу тилде программа жазып жатасыз. Кимдир бирөө ошол тилдин ички органдарын — анын лексирин, анализдөөчүсүн жана котормочусун — сиздин ниетиңизди ишке ашыруу үчүн иштеп чыккан. Жана алардын ишинин сапаты – бул сиздин тажрыйбаңыз сыйкырдуу же азаптуу сезилерин аныктоочу көзгө көрүнбөгөн күч. Бул ички сезимдерди, жада калса үстүнкү деңгээлде түшүнүү сизге супер күч берет: интерфейстин астындагы машинаны көрүү, анын кайсы жерде бузулаарын алдын ала билүү жана аны дизайнерлер ойлогондон да ары түртүү мүмкүнчүлүгү.

Бүгүнкү күндө бизнесиңизди түзүңүз

Фрилансерлерден агенттиктерге чейин, Mewayz 207 интеграцияланган модулу менен 138,000+ бизнеске ыйгарым укуктарды берет. Акысыз баштаңыз, чоңойгондо жаңыртыңыз.

Акысыз каттоо эсебин түзүү →

Көп берилүүчү суроолор

"Lil' fun langs" деген эмне жана мен эмне үчүн кам көрүшүм керек?

Lil' кызыктуу тилдер - бул конкреттүү идеяларды изилдөө же негизги түшүнүктөрдү үйрөтүү үчүн курулган кичинекей, эксперименталдык программалоо тилдери. Алар дем алыш күндөрү жазылган оюнчук котормочулардан тарта тар тапшырмалар үчүн иштелип чыккан домендик тилдерге (DSLs) чейин. Алардын кантип иштээрин түшүнүү сизге бардык программалык камсыздоонун, анын ичинде күнүмдүк таянган бизнес куралдарыңыздын кандайча иштээрин тереңирээк түшүнүүгө мүмкүнчүлүк берет. Бул билим автоматташтыруу тутумдарын тандоодо же курууда сизди курчраак иштеп чыгуучу жана маалыматтуу чечим кабыл алуучуга айлантат.

Тилдин ички түзүлүштөрүн үйрөнүү бизнести автоматташтырууга кандай жардам берет?

Сиз талдоо, баалоо жана котормочулар сыяктуу түшүнүктөрдү түшүнгөндө, автоматташтырууга башкача карай баштайсыз. Сиз жумуш процессин куруучулардын, калыптардын кыймылдаткычтарынын жана эреже тутумдарынын үлгүлөрүн тааныйсыз. Mewayz сыяктуу платформалар эсеп-фактураларды, CRM иштөө процесстерин жана башкаларды автоматташтырууга мүмкүндүк берүү үчүн 207 модулда ушул эле принциптерди колдонушат — бардыгы код жазбастан. Негиздерди билүү бул куралдарды андан ары өнүктүрүүгө жана көйгөйлөрдү тезирээк чечүүгө жардам берет.

Кичинекей тилди түзүү үчүн мага информатика даражасы керекпи?

Такыр эмес. Көптөгөн иштеп чыгуучулар окуу куралдарын жана ачык булактуу гиддерди колдонуу менен бир дем алыш күндөрү биринчи котормочу түзүшөт. Python жана JavaScript сыяктуу тилдер негизги лексиканы, талдоочуну жана баалоочуну жазууну оңой кылат. Максат кийинки өндүрүш тилин түзүү эмес, аны жасоо менен үйрөнүү. Жөнөкөй калькулятордун тили да сизге туюнтмалардын талданышын жана аткарылышын үйрөтөт.

DSLлерди түшүнүү мага жакшыраак бизнес куралдарын тандоого жардам бере алабы?

Так эле. Көптөгөн бизнес платформалары формулалар, чыпкалар жана иш процессинин эрежелери үчүн доменге тиешелүү тилдерди киргизет. Сиз DSL'лер капоттун астында кантип иштээрин түшүнгөндө, куралдарга сын көз менен баа бере аласыз. Мисалы, Mewayz модулдары боюнча орнотулган автоматташтыруу логикасы менен айына $ 19дан баштап комплекстүү бизнес OS сунуштайт. DSL концепцияларын билүү сизге тырмап койбостон, ал функцияларды толугу менен колдонууга жардам берет.

эмес, бул функцияларды толугу менен колдонууга жардам берет

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