Një backend i ri përpilues i bazuar në formatin NIF është duke u zhvilluar për Nim 3.0

Gjatë zhvillimit të versionit 3.0 të gjuhës së programimit Nim, po punohet për një përpilues të përditësuar që përdor formatin e ndërmjetëm NIF (Nim Intermediate Format). Përpiluesi i ri do të zgjidhë disa probleme teknike, duke përfshirë përmirësimin e përpilimit në rritje dhe thjeshtimin e menaxhimit të varësive midis moduleve. Data e lëshimit për Nim 3.0 ende nuk është përcaktuar.

Sipas specifikimit NIF të publikuar në depon e projektit, formati i ri lejon që kodi të ruhet si një pemë sintaksore abstrakte (AST), duke ndarë hapësirat e emrave për konstruktet e integruara dhe emrat e personalizuar. Kjo siguron fleksibilitet kur shtoni fjalë kyçe të reja dhe thjeshton integrimin me mjetet e zhvillimit.

Përpiluesi Nim 3.0 do të ndahet në disa faza:

  • Nifler - konverton kodin burimor Nim në NIF, duke marrë parasysh skedarët e konfigurimit.
  • Nimony - analiza semantike, duke përfshirë kontrollin e tipit dhe rezolucionin makro.
  • Hexer - optimizimi i kodit, duke përfshirë inlinimin e përsëritësve dhe mbështetjen e menaxhimit të kujtesës (ARC/ORC).
  • NIFC - gjenerimi i kodit për C/C++, duke marrë parasysh karakteristikat e platformës së synuar.

Përmirësimet kryesore përfshijnë:

  • Asambleja në rritje, e cila përshpejton përpilimin kur bëhen ndryshime të pjesshme të kodit.
  • Eliminoni nevojën për deklarim paraprak të procedurave dhe llojeve.
  • Mbështetje për varësitë ciklike midis moduleve.
  • Kontrollimi i tipit për gjenerikë në fazën e përpilimit.
  • Korrigjimi i gabimeve të fazës së përpilimit, siç është thirrja e gabuar e destruktorëve.

Specifikimi gjithashtu vë në dukje se NIF ruan informacione rreth pozicioneve të elementeve të kodit (numrat e rreshtave dhe kolonave), gjë që thjeshton korrigjimin dhe integrimin me IDE.

Gjuha Nim është e fokusuar në zgjidhjen e problemeve të programimit të sistemit, përdor shtypjen statike dhe është krijuar me vëmendje në gjuhë të tilla si Python, Ada dhe Modula. Kodi burimor Nim përpilohet në një përfaqësim C, C++, Objective-C ose JavaScript. Më pas, kodi C/C++ që rezulton përpilohet në një skedar të ekzekutueshëm duke përdorur çdo përpilues të disponueshëm (clang, gcc, icc, Visual C++), i cili ju lejon të arrini performancë afër C, nëse nuk merrni parasysh kostot e funksionimit të kolektorit të plehrave. Ngjashëm me Python, Nim përdor dhëmbëzimin si ndarës të bllokut. Mbështeten mjetet dhe aftësitë e metaprogramimit për krijimin e gjuhëve specifike të domenit (DSL). Kodi i projektit jepet nën licencën MIT.

Burimi: opennet.ru

Bleni një host të besueshëm për faqet me mbrojtje DDoS, serverë VPS VDS 🔥 Bleni hosting të besueshëm të faqeve të internetit me mbrojtje DDoS, servera VPS VDS | ProHoster