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

Presented gjuhë programimi Solod (So), i cili ofron një nënbashkësi të gjuhës Go, e transpajluar në paraqitje në gjuhën C (C11), e përshtatshme për ndërtim me kompajlerët GCC, Clang dhe zig cc. Dallimi kryesor i Solod nga Go është përdorimi i menaxhimit manual të memories, që funksionon pa përdorur garbage collector, pa alokim automatik të memories dhe pa numërim referencash. Transpajleri për Solod është shkruar në gjuhën Go dhe shpërndahet nën licencën BSD. Mbështetet funksionimi në Linux, macOS dhe Windows.

Gjuha mbështet strukturat, metodat, ndërfaqet, slices, kthimin e disa vlerave nga funksionet (për shembull, rezultat + kod gabimi), gjenerikë dhe thirrje të shtyra (defer). Për thjeshtësi, gjuha nuk mbështet channels, coroutines dhe closures. Gjatë zhvillimit në gjuhën Solod mund të përdoren serverët ekzistues LSP, linter-at, mjediset e integruara të zhvillimit dhe redaktorët e kodit që mbështesin gjuhën Go, si edhe veglat «go test».

Kodi i shkruar në Solod mund të integrohet me aplikacione në gjuhën C (gjuha C mund të thërrasë funksione në Solod dhe anasjelltas) dhe nuk kërkon bashkëngjitjen e runtime. Ndër fushat kryesore të përdorimit përmendet programimi sistemor me mundësi të afërta me C, por me sintaksë në stilin Go dhe me kontroll tipesh. Solod mund të përdoret gjithashtu për portimin e bibliotekave Go për përdorim në projekte në C. Në gjuhën C janë portuar paketat Go:

dhe etj. Përveç koleksionit të bibliotekave Go të portuara në programet në gjuhën Solod mund të përdoren mbështjellësa mbi bibliotekën standarde C libc.

Si parazgjedhje, e gjithë memoria alokohet në stack, por përmes funksioneve Alloc / Free të bibliotekës standarde mund të alokohet memorie në heap. Garbage collector dhe numërimi i referencave nuk përdoren, por në Solod ofrohen mekanizma për kontrollin e tipeve dhe për ndërprerje emergjente kur bëhet qasje jashtë kufijve të një array. Megjithatë, nuk kryhen kontrolle për kthimin e dangling pointer dhe për mungesën e çlirimit të memories. Si mënyra kryesore për zbulimin e problemeve gjatë punës me memorien përmendet përdorimi i AddressSanitizer -fsanitize=address në kompajlerët modernë.

Për nga performanca, programet e kompiluara të shkruara në Solod në shumicën e rasteve janë më të shpejta se programet në Go:

  • Performanca e funksioneve nga paketa Byte Ă«shtĂ« 1.5 herĂ« mĂ« e shpejtĂ« me konsum identik tĂ« memories;
  • Puna me buffer-at e bajteve Ă«shtĂ« 1.3 herĂ« mĂ« e shpejtĂ« nĂ« lexim dhe 2–4 herĂ« mĂ« e shpejtĂ« nĂ« shkrim;
  • NĂ« paketĂ«n Map, marrja sipas çelĂ«sit tĂ« plotĂ« Ă«shtĂ« 3.4 herĂ« mĂ« e shpejtĂ«, por modifikimi i çelĂ«save Ă«shtĂ« 1.6 herĂ« mĂ« i ngadaltĂ«;
  • Marrja sipas çelĂ«save tekstualĂ« Ă«shtĂ« nĂ« tĂ« njĂ«jtin nivel me gjuhĂ«n Go, por modifikimi Ă«shtĂ« 1.5 herĂ« mĂ« i ngadaltĂ«;
  • Parsimi dhe formatimi i numrave tĂ« plotĂ« Ă«shtĂ« 2 herĂ« mĂ« i shpejtĂ«, ndĂ«rsa i numrave me presje lundruese 1.5/1.2 herĂ« mĂ« i shpejtĂ«;
  • Funksionet e vargjeve janĂ« 1.3 herĂ« mĂ« tĂ« shpejta, ndĂ«rsa krijimi i vargjeve Ă«shtĂ« 2–4 herĂ« mĂ« i shpejtĂ«, me ulje tĂ« konsumit tĂ« memories prej 10–20%.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster