Solod — njĂ« nĂ«ngrup i gjuhĂ«s Go, i transkoduara nĂ« gjuhĂ«n C

Të paraqitura gjuhë programuese Solod (So), i cili ofron një nëngrup të gjuhës Go, i transkompiluara në një përfaqësim në gjuhën C (C11), të përshtatshëm për ndërtimin nga kompilerët GCC, Clang dhe zig cc. Dallohet nga Go për përdorimin e menaxhimit manual të memories, që funksionon pa përdorimin e mbledhësit të plehrave, pa alokim automatik të memories dhe pa llogaritjen e referencave. Transpaileri për Solod është shkruar në gjuhën Go dhe distribuohet nën licencën BSD. Mbështetet puna në Linux, macOS dhe Windows.

Gjuha mbështet struktura, metoda, ndërfaqe, slice, kthim të funksioneve me disa vlera (p.sh., rezultat + kod gabimi), gjenerikët dhe thirrje të vonuara (defer). Me qëllim lehtësimi, gjuha nuk mbështet kanale, korutina dhe mbyllje. Kur zhvilloni në gjuhën Solod, mund të përdoren serverë LSP ekzistues, linters, mjedise të integruara zhvillimi dhe redaktorë kodi që mbështesin gjuhën Go, si dhe mjetin 'go test'.

Kodi i shkruar në Solod mund të integrohet me aplikacione në gjuhën C (gjuhë C mund të thërrasë funksione në Solod dhe anasjelltas) dhe nuk kërkon bashkëngjitje runtime. Disa fusha kryesore të aplikimit përfshijnë programimin sistemor me mundësi të ngjashme me C, por me një sintaksë në stilin Go dhe me kontrollin e tipeve. Solod gjithashtu mund të përdoret për portimin e biblioteka Go për t'u përdorur në projekte në C. Biblioteka Go të portuara në gjuhën C janë:

dhe etj. Përveç setit libraritë e portuara Go në programet në gjuhën Solod mund të përdoren shell në bibliotekën standarde C libc.

Për default, të gjitha memoriet ndahen në stack, por përmes funksioneve Alloc / Free Biblioteka standarde mundëson ndarjen e memories në heap. Grumbullimi i mbeturinave dhe numërimi i referencave nuk përdoren, por në Solod ofrohen mundësi për verifikimin e tipeve dhe përfundimin emergjent në rast të aksesit jashtë kufijve të masivit. Megjithatë, nuk kryhen verifikime për ndarjen e treguesve dangling dhe mungesën e lirimit të memories. Si metode kryesore për identifikimin e problemeve me memorien përmendet përdorimi i AddressSanitizer -fsanitize=address në kompiluesit modernë.

Në aspektin e performancës, programet e komiluara të shkruara në Solod, në shumicën e rasteve më shpejt programet në Go:

  • performanca e funksioneve nga paketa Byte Ă«shtĂ« 1.5 herĂ« mĂ« e shpejtĂ« me konsum tĂ« njĂ«jtĂ« tĂ« memories;
  • puna me buferat e byte Ă«shtĂ« 1.3 herĂ« mĂ« e shpejtĂ« gjatĂ« leximit dhe 2-4 herĂ« mĂ« e shpejtĂ« gjatĂ« shkruarjes;
  • nĂ« paketĂ«n Map, kĂ«rkimi me çelĂ«s integer Ă«shtĂ« 3.4 herĂ« mĂ« i shpejtĂ«, por modifikimi i çelĂ«save Ă«shtĂ« mĂ« i ngadalshĂ«m me 1.6 herĂ«;
  • kĂ«rkimi me çelĂ«s string Ă«shtĂ« nĂ« tĂ« njĂ«jtin nivel me gjuhĂ«n Go, por modifikimi Ă«shtĂ« mĂ« i ngadalshĂ«m me 1.5 herĂ«;
  • parsing dhe formatimi i numrave tĂ« gjithĂ« Ă«shtĂ« 2 herĂ« mĂ« i shpejtĂ«, ndĂ«rsa ai me pikĂ« tĂ« lĂ«vizshme Ă«shtĂ« 1.5/1.2 herĂ« mĂ« i shpejtĂ«;
  • funksionet e stringjeve janĂ« 1.3 herĂ« mĂ« tĂ« shpejta, dhe krijimi i stringeve Ă«shtĂ« 2-4 herĂ« mĂ« i shpejtĂ« me njĂ« reduktim tĂ« konsumit tĂ« memories nga 10-20%.

Burimi: linux.org.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster