Hacker News

Лил' Fun Langs' Guts

Шарҳҳо

1 min read Via taylor.town

Mewayz Team

Editorial Team

Hacker News

Чаро дидан дар зери сарпӯши забонҳои ночизи барномасозӣ шуморо бинокори беҳтар мегардонад

Ҳар як нармафзоре, ки шумо истифода мебаред - аз CRM, ки пешрафтҳои шуморо пайгирӣ мекунад то муҳаррики автоматикуноние, ки ҳисобномаҳоро дар нисфи шаб мефиристад - бо забони барномасозӣ сохта шудааст. Аммо оё шумо ягон бор фикр кардаед, ки забони барномасозиро чи тик мекунад? На экосистемаҳои азим ба монанди Python ё JavaScript, балки системаҳои хурди ночиз ва аҷибе, ки таҳиягарон дар рӯзҳои истироҳат барои ҳалли як мушкилот ё танҳо барои омӯхтан месозанд. Ин "зангҳои шавқовар" - забонҳои бозича, забонҳои мушаххаси домен (DSLs) ва тарҷумонҳои таълимӣ - дар он ҷое ҳастанд, ки баъзе аз ғояҳои зеботарин дар илми информатика зиндагӣ мекунанд. Фаҳмидани ҷасорати онҳо на танҳо шуморо барномасози беҳтар месозад; он тарзи фикрронии шумо дар бораи сохтани асбобҳо, автоматикунонии ҷараёни корӣ ва тарҳрезии системаҳоеро, ки воқеан барои одамон кор мекунанд, ба куллӣ тағйир медиҳад.

"Lil' Fun Langs" маҳз чист?

Ҷаҳони барномасозӣ пур аз забонҳост, ки ҳеҷ гоҳ барои пур кардани серверҳои истеҳсолӣ ё коркарди миллионҳо транзаксия пешбинӣ нашудаанд. Забонҳое мисли Lox (аз Тарҷумонҳои ҳунарманди-и Роберт Нистром), Маймун (аз Навиштани тарҷумон дар Go-и Торстен Бол) ё ҳатто забонҳои шӯхӣ ба мисли Brainfuck ва Chef барои таълим додан, фароғат кардан ва маҳдуд кардани сарҳадҳои маънои "забон" вуҷуд доранд. Ин забонҳои хурд мураккабии асбобҳои воқеиро аз байн мебаранд ва механикаи хоми чӣ гуна ба амал табдил ёфтани кодро фош мекунанд.

Аммо "лиl' langs" танҳо бо машқҳои таълимӣ маҳдуд намешавад. Забонҳои мушаххаси домен баъзе аз воситаҳои муассири тиҷоратро дар бозор қувват мебахшанд. Ҳар дафъае, ки шумо формуларо дар ҷадвали электронӣ менависед, қоидаи филтрро дар мизоҷи почтаи электронии худ муайян мекунед ё ҷараёни кории автоматикунониро дар платформае ба мисли Mewayz танзим мекунед, шумо бо забони хурди мақсаднок кор карда истодаед. 207 модул дар дохили Mewayz - CRM, ҳисобноманависӣ, HR, идоракунии флот ва ғайра - ба муҳаррикҳои қоидаҳои дохилӣ ва таҳлилгарони ифода такя мекунанд, ки дар асл забонҳои ночизе мебошанд, ки ба корбарон қудрат бидуни талаб кардани дараҷаи илми компютерӣ пешбинӣ шудаанд.

Фаҳмидани анатомияи ин забонҳо нишон медиҳад, ки чаро баъзе асбобҳо ҳисси интуитивиро ҳис мекунанд, дар ҳоле ки дигарон худро бо дастуре, ки дар андозагирии дигар навишта шудааст, мубориза мебаранд.

The Lexer: Тақсимоти калимаҳо ба атомҳо

Ҳар забон, новобаста аз он ки хурд бошад, бо ҳамон як қадами бунёдӣ оғоз мешавад: таҳлили лексикӣ ё "лексикӣ". Лексер як сатри хоми аломатҳоро мегирад - чизе монанди total = price * quantity + tax - ва онро ба қисмҳои пурмазмун, ки аломатҳо ном доранд, тақсим мекунад. Лексер хануз ба маъно парвое надорад. Он танҳо муайян мекунад, ки total идентификатор, = оператори таъинот, price дигар идентификатор, * зарб ва ғайра мебошад.

Сохтани луғат барои забони ночиз ба таври ҳайратангез қаноатбахш аст. Дар камтар аз 100 сатри код шумо метавонед барномаро барои шинохтани рақамҳо, сатрҳо, калимаҳои калидӣ ва операторҳо омӯзед. Соддаӣ ин аст, ки он шуморо водор мекунад, ки дар бораи он фикр кунед, ки маҷмӯи мутлақи "калимаҳо"-и забони шумо ба чӣ ниёз дорад. Ҳамин тафаккур ҳангоми тарҳрезии асбобҳои ба корбар рӯбарӯшуда татбиқ мешавад. Вақте ки муҳаррики автоматикунонии Mewayz ба соҳиби тиҷорати хурд имкон медиҳад, ки қоидаеро муқаррар кунад, ба монанди "вақте ки мӯҳлати ҳисобнома-фактура то 7 рӯз гузаштааст, ба почтаи ёдраскунак фиристед", система оромона ин қоидаро ба аломатҳои сохторие, ки метавонад амал кунад, шарҳ медиҳад. Интерфейсҳои беҳтарин маҳз аз он сабаб эҳсос мекунанд, ки касе дар бораи он ки воҳидҳои хурдтарини нияти корбар чӣ гунаанд, амиқ фикр мекарданд.

Таҳлил: Табдил додани аломатҳои ҳамвор ба дарахтони зинда

Вақте ки шумо нишонаҳо доред, ба шумо сохтор лозим аст. Таҳлил пайдарпайии ҳамвори аломатҳоро ба дарахти абстрактии синтаксис (AST) табдил медиҳад - як намоиши иерархӣ, ки муносибатҳои байни қисмҳои гуногуни ифодаро инъикос мекунад. Ифодаи 3 + 4 * 5 танҳо пайдарпайии панҷ нишона нест; ин дарахтест, ки дар он зарб нисбат ба ҷамъ сахттар баста мешавад ва ба ҷои 35 23 медиҳад.

Дар ин ҷо чизҳо воқеан шавқовар мешаванд. Алгоритмҳои таҳлилӣ ба монанди пайдоиши рекурсивӣ ё таҳлили Пратт қисмҳои зебои муҳандисӣ мебошанд, ки дар як файл ҷойгиранд, аммо грамматикаҳои ҳайратангези мураккабро идора карда метавонанд. Тахлилкунакхои рекурсивии насл, махсусан, кариб мисли мушаххасоти худи забон мехонанд — хар як функсия ба коидаи грамматикй мувофикат мекунад ва кодро ба таври худхуччаткуни мекунад, ки дар коркарди нармафзор кам дида мешавад.

Дарсҳо аз таҳлил фаротар аз тарҳрезии забон мебошанд. Ҳар як системае, ки вуруди сохториро коркард мекунад - варақаи фармоиш бо диапазони санаҳо, конфигуратсияи музди меҳнат бо қоидаҳои шартӣ, лӯлаи CRM бо мантиқи шоха - мушкилоти таҳлилро ҳал мекунад. 138,000+ корбарони платформаи Mewayz ҳар рӯз маълумоти мураккаб ва сохториро тавлид мекунанд. Фаҳмидани он, ки чӣ тавр таҳлилгарон вуруди норавшанро ба сохтори якхела табдил медиҳанд, фарқи байни сохтани системае мебошад, ки парвандаҳои канориро ба таври возеҳ идора мекунад ва он лаҳзае, ки касе ба сана дар формати ғайричашмдошт ворид мешавад, вайрон мешавад.

Тарҷумон: Дар куҷо код зинда мешавад

Тарҷумон он ҷоест, ки ҷодугарӣ рӯй медиҳад. Он дар AST, гиреҳ ба гиреҳ қадам мезанад ва иҷро мекунад. Гиреҳи рақам арзиши худро бармегардонад. Гиреҳи амалиёти бинарӣ кӯдакони чап ва рости худро арзёбӣ карда, онҳоро муттаҳид мекунад. Даъвати функсия функсияро дар муҳит ҷустуҷӯ мекунад, далелҳоро мепайвандад ва баданро арзёбӣ мекунад. Дар забони бозича, тамоми тарҷумон метавонад аз 200-300 сатр иборат бошад - ба қадри кофӣ хурд барои дар сари шумо нигоҳ доштан, аммо барои иҷро кардани барномаҳои воқеӣ кофӣ қавӣ.

Ду равиши васеъ барои иҷроиш вуҷуд дорад: тарҷумонҳои дарахтон ва мошинҳои виртуалии байткод. Дарахт-сайёҳон соддатар, вале сусттаранд; онхо бевосита аз АСТ мегузарад. VM-ҳои Bytecode AST-ро ба пайдарпаии дастурҳои оддӣ (ба монанди забони маҷлиси хурд) тартиб медиҳанд ва ба ҷои он онҳоро иҷро мекунанд, мураккабии амалисозии тиҷоратро барои иҷрои ба таври назаррас беҳтар мекунанд. CPython, татбиқи стандартии Python, VM-и байткодро истифода мебарад. Луа, яке аз самараноктарин забонҳои дохилшаванда, пешрав тарҳи VM-и ба регистр асосёфта буд, ки ба муҳаррикҳои бозӣ дар саросари ҷаҳон таъсир расонд.

Фаҳиши калидӣ: Воситаҳои пуриқтидортарини тиҷорӣ воситаҳои аз ҳама бештар хусусиятҳо надоранд — онҳо дорои беҳтарин "забон"-и дохилӣ барои ифодаи он чизе мебошанд, ки корбарон воқеан ба онҳо ниёз доранд. Ҳар як муҳаррики қоида, системаи формулаҳо ва созандаи автоматика тарҷумони ночизи пинҳоншуда мебошад. Сифати он тарҷумон муайян мекунад, ки оё асбоб аз 10 корбар то 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 →

Муҳит ва доираи: Меъмории пинҳонии давлат

Яке аз мафҳумҳои душвортарин дар татбиқи забон ва яке аз консепсияҳои мустақим ба нармафзори тиҷоратӣ ин аст, ки чӣ гуна забонҳо давлатро тавассути муҳит ва миқёс идора мекунанд. Вақте ки шумо дар дохили функсия таъиноти тағирёбанда менависед, он тағирёбанда набояд берун наояд ва чизеро дар миқёси глобалӣ баргардонад. Ин возеҳ ба назар мерасад, аммо татбиқи дурусти он сохтори додаҳо бо номи занҷири муҳити зистро талаб мекунад: рӯйхати алоқаманди харитаҳои хэш, ки дар он ҳар сатҳ миқёсро ифода мекунад ва ҷустуҷӯҳои тағирёбанда то пайдо кардани мувофиқат дар занҷир қадам мезананд.

Ин намуна дар ҳама ҷо дар нармафзори хуб тарҳрезишуда нишон дода мешавад. Иҷозатҳои корбар дар платформаи тиҷоратӣ ҳамин тавр кор мекунанд - дастрасии аъзои даста тавассути тафтиши аввал иҷозатҳои инфиродии онҳо, баъд иҷозатҳои нақш ва пас аз пешфарзҳои созмон муайян карда мешавад. Системаи модули Mewayz, ки ҳама чизро аз саҳифаҳои пайванд дар био то коркарди пурраи музди меҳнат фаро мегирад, конфигуратсияи қабатро истифода мебарад, ки ин принсипи дақиқро инъикос мекунад. Соҳиби тиҷорат муқаррароти пешфарзро дар миқёси созмон муқаррар мекунад, менеҷерони шӯъба метавонанд танзимоти мушаххасро бекор кунанд ва корбарони инфиродӣ метавонанд фазои кории худро танзим кунанд - ҳама бидуни ихтилоф.

Дар забони барномасозӣ иштибоҳ пайдо кардани миқёс боиси хатогиҳо мегардад. Гирифтани миқёс дар платформаи тиҷорӣ боиси ихроҷи маълумот, афзоиши иҷозат ва як навъ бесарусомонии амалиётӣ мегардад, ки пули ҳақиқиро талаб мекунад. Дарсҳо дар ҳама сатҳи абстраксия якхелаанд.

Сохтани забони ночиз дар асл ба шумо чӣ меомӯзад

Агар шумо ҳеҷ гоҳ забони хурди барномасозӣ насозед, ин аст он чизе ки таҷриба ба таври мушаххас таълим медиҳад - ва чаро муҳим аст, ки шумо таҳиягар, муассиси техникӣ ё касе ҳастед, ки танҳо абзорҳои ҳаррӯзаи онҳоро фаҳмидан мехоҳад:

  • Дақиқии фикр: Ҳангоми муайян кардани грамматика шумо норавшан буда наметавонед. Ҳар як номуайянӣ дар мушаххасоти забони шумо хато дар таҳлилгари шумо мегардад. Ин фан бевосита ба навиштани мушаххасоти беҳтар, ҳуҷҷатҳои равшантар ва талаботи дақиқтари хусусиятҳо мегузарад.
  • Ҳамдардӣ барои корбарон: Вақте ки шумо забонеро тарҳрезӣ мекунед, шумо интерфейси тафаккури инсониро тарҳрезӣ мекунед. Шумо савол доданро меомӯзед: "Истифодабаранда бо ин дар назар чиро дар назар дорад?" — саволе, ки бояд ҳар як қарори маҳсулотро барангезад.
  • Интуитсияи иҷроиш: Шумо мефаҳмед, ки чаро баъзе амалиётҳо зуд ва баъзеи дигар сустанд, на аз хондани нишондиҳандаҳо, балки аз дидани дақиқи чанд қадами тарҷумон. Ин шуморо дар тарҳрезии системаҳое, ки миқёс доранд, беҳтар мекунад.
  • Маҳорати ислоҳи хатогиҳо: Вақте ки забони шумо натиҷаи нодуруст медиҳад, шумо ҷои пинҳон надоред. Ягон чаҳорчӯбаи гунаҳкорӣ, ихтилофи версияи китобхона вуҷуд надорад. Ин мантиқи шумо, сохторҳои додаҳои шумо, алгоритми шумост. Ин як навъ маҳорати амиқро ислоҳ мекунад, ки муҳандисони хубро аз бузургон ҷудо мекунад.
  • Сипосгузорӣ барои абстраксия: Шумо мефаҳмед, ки чаро забонҳои сатҳи болотар интихоб карданд - чаро JavaScript баста мешавад, чаро Python холигии назаррасро интихоб кардааст, чаро тафтишкунандаи қарзи Rust вуҷуд дорад. Инҳо қарорҳои худсарона нестанд; онҳо роҳи ҳалли мушкилоти воқеие мебошанд, ки шумо ҳангоми татбиқи худи шумо дучор мешавед.

Аз забонҳои бозича то автоматизатсияи воқеии ҷаҳон

Тафовут байни забони бозича ва муҳаррики автоматикунонии истеҳсолот камтар аз он аст, ки аксари одамон фикр мекунанд. Забони қолаби моеъи Shopify ҳамчун як системаи содда ва бехатари қолаб оғоз шуда, ҳоло миллионҳо дӯконҳоро қудрат медиҳад. Синтаксиси ҷараёни кории GitHub Actions як забони мушаххаси домен аст, ки дар YAML сохта шудааст. Забони дархости Sigma Stripe ба гурӯҳҳои молиявӣ имкон медиҳад, ки бидуни навиштани SQL маълумоти пардохтро пурсиш кунанд. Ҳар яке аз онҳо бо пурсидани касе оғоз шуд: "Забони хурдтарин ва соддатарин, ки ин мушкили мушаххасро ҳал мекунад, кадом аст?"

Ин ҳамон фалсафаи паси платформаҳост, ки ҳадафи муттаҳид кардани амалиёти тиҷоратӣ дар як экосистема мебошад. Вақте ки Mewayz ба фрилансере, ки ба саҳифаи пайванд дар био ва ниёз дорад, хидмат мерасонад, ба як ширкати миёнаҳаҷм, ки барои 50 корманд дар 207 модули худ варақаи музди меҳнатро иҷро мекунад, мушкили аслӣ бо ҳар як тарроҳи забон дучор мешавад: чӣ гуна шумо системаеро эҷод мекунед, ки барои шурӯъкунандагон кофӣ содда бошад, аммо барои ҳолатҳои мураккаби истифода тавоно бошад? Ҷавоб, тавре ки ҳар як иҷрокунандаи забон ба шумо мегӯяд, дуруст ба даст овардани ибтидоӣ аст - блокҳои хурди таркибӣ, ки корбарон метавонанд бо тарзе, ки тарроҳон ҳеҷ гоҳ интизор набуд, якҷоя кунанд.

Вақте ки шумо қоидаи автоматикунониро танзим мекунед, панели асбоби фармоишӣ созед ё ҷараёни кори шартиро дар ҳама гуна асбоби тиҷоратӣ танзим мекунед, дар хотир доред: шумо барномаро бо забони шавқовар менависед. Касе тарҳрезӣ кардааст, ки ин забон - лексер, таҳлилгар ва тарҷумони он - барои иҷрошаванда будани нияти шумо. Ва сифати кори онҳо қувваи ноаёнест, ки муайян мекунад, ки таҷрибаи шумо ҷодугарӣ ё бадбахтӣ аст. Фаҳмидани ин рӯҳҳо, ҳатто дар сатҳи рӯизаминӣ, ба шумо як қудрати бузург медиҳад: қобилияти дидани мошин дар зери интерфейс, пешгӯӣ кардани он, ки дар куҷо мешиканад ва онро аз он даме, ки тарроҳони он тасаввур карда буданд.

Имрӯз OS тиҷорати худро созед

Аз фрилансерҳо то агентиҳо, Mewayz зиёда аз 138,000 корхонаҳоро бо 207 модули ҳамгирошуда қудрат медиҳад. Бепул оғоз кунед, вақте ки шумо калон мешавед, навсозӣ кунед.

Эҷод кардани ҳисоби ройгон →

Саволҳои зуд-зуд додашаванда

"Lil' fun langs" чистанд ва чаро ман бояд ғамхорӣ кунам?

Лангҳои шавқовари Lil' забонҳои хурди таҷрибавии барномасозӣ мебошанд, ки барои омӯхтани ғояҳои мушаххас ё таълими мафҳумҳои асосӣ сохта шудаанд. Онҳо аз тарҷумони бозичаҳои дар рӯзҳои истироҳат навишташуда то забонҳои мушаххаси домен (DSLs) иборатанд, ки барои вазифаҳои танг пешбинӣ шудаанд. Фаҳмидани он, ки онҳо чӣ гуна кор мекунанд, ба шумо фаҳмиши амиқтар медиҳад, ки чӣ гуна ҳама нармафзор кор мекунанд, аз ҷумла абзорҳои тиҷорӣ, ки шумо ҳар рӯз ба онҳо такя мекунед. Ин дониш шуморо ба як таҳиягари тезтар ва қарор қабулкунандаи огоҳтар ҳангоми интихоб ё сохтани системаҳои автоматикунонӣ табдил медиҳад.

Омӯзиши забонҳои дохилӣ ба автоматикунонии тиҷорат чӣ гуна кӯмак мерасонад?

Вақте ки шумо мафҳумҳоро ба монанди таҳлил, арзёбӣ ва тарҷумонҳо мефаҳмед, шумо автоматизатсияро ба таври дигар дидан хоҳед кард. Шумо намунаҳоро дар таҳиягарони ҷараёни корӣ, муҳаррикҳои қолабҳо ва системаҳои қоидаҳо эътироф мекунед. Платформаҳо ба монанди Mewayz ин принсипҳоро дар 207 модули худ истифода мебаранд, то ба шумо имкон медиҳанд, ки ҳисобнома-фактураҳо, ҷараёни кории CRM ва ғайраро автоматӣ кунед - ҳама бе навиштани код. Донистани асосҳо ба шумо кӯмак мекунад, ки ин абзорҳоро боз ҳам бештар кашед ва мушкилотро зудтар ҳал кунед.

Оё барои сохтани забони ночиз ба ман дараҷаи илми информатика лозим аст?

На умуман. Бисёре аз таҳиягарон тарҷумони аввалини худро дар як рӯзи истироҳат бо истифода аз дастурҳои дарсӣ ва дастурҳои кушодаасос месозанд. Забонҳо ба монанди Python ва JavaScript навиштани лексери асосӣ, таҳлилгар ва арзёбӣкунандаро осон мекунанд. Ҳадаф эҷод кардани забони навбатии истеҳсолӣ нест - он омӯхтани кор аст. Ҳатто як забони соддаи ҳисобкунак ба шумо таълим медиҳад, ки чӣ гуна ифодаҳо таҳлил ва иҷро мешаванд, малакаҳое, ки мустақиман ба рушди ҷаҳони воқеӣ интиқол дода мешаванд.

Оё фаҳмиши DSL-ҳо ба ман дар интихоби абзорҳои беҳтари тиҷорат кӯмак карда метавонад?

Албатта. Бисёр платформаҳои тиҷорӣ забонҳои мушаххаси доменро барои формулаҳо, филтрҳо ва қоидаҳои ҷараёни кор ҷойгир мекунанд. Вақте ки шумо мефаҳмед, ки чӣ тавр DSLҳо дар зери сарпӯш кор мекунанд, шумо метавонед асбобҳоро ба таври интиқодӣ арзёбӣ кунед. Масалан, Mewayz як OS-и ҳамаҷонибаи тиҷоратиро бо арзиши 19 доллар дар як моҳ бо мантиқи автоматикунонии дарунсохт дар модулҳои худ пешниҳод мекунад. Донистани консепсияҳои 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 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ 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