Logo Lanfrica

lugha-swa/swa

Domain:

natural language processing

Record type:

software
Creator:
lug
Host:
Lugha ya kupanga yenye sintaksia kamili ya Kiswahili. Mkusanyaji wa kujikusanya — inakusanya moja kwa moja hadi msimbo wa mashine kupitia LLVM na kizalishe asilia cha x86-64. # SWA — Lugha ya Kupanga ya Kiswahili **Swa** ni lugha ya kupanga yenye sintaksia kamili ya Kiswahili. Hakuna neno la Kiingereza linatumika katika sintaksia yake. Inakusanya moja kwa moja hadi msimbo wa mashine — kwanza kwa njia asilia (`uzalishaji.swa`) inayotoa ELF binary moja kwa moja bila LLVM wala mkusanyaji msaidizi, na pia kwa njia ya LLVM kwa majukwaa zaidi. Makao rasmi: **lugha-swa** ## Mfano ```swa husisha C::stdio W0 salamu(N8* jina) { andika("Habari, %s!\n", jina); } W0 hesabu_na_onyesha(N32 a, N32 b) { N32 jumla = a + b; N32 tofauti = a - b; andika("%d + %d = %d\n", a, b, jumla); andika("%d - %d = %d\n", a, b, tofauti); } salamu("Dunia"); hesabu_na_onyesha(15, 7); ``` ## Mifano Zaidi ### Vigezo na Aina ```swa N32 umri = 25; N64 idadi_ya_watu = 8000000000; D32 wastani = 3.14; B1 imewashwa = kweli; N8 herufi = 'A'; ``` ### Mtiririko wa Udhibiti ```swa // Kama/Sivyo N32 kadirifu(N32 x) { kama (x > 0) { rudisha 1; } sivyo kama (x x = v; } ``` ### Safu na Kumbukumbu ```swa N8 bafa[1024]; // safu ya ulimwengu N32 namba[5] = {1, 2, 3, 4, 5}; W0 andika_bafa() { bafa[0] = 65; // andika kwenye safu N32 ya_kwanza = namba[0]; } // Kumbukumbu ya moja kwa moja W0 mfano_kumbukumbu() { N32* p = tenga N32; // tenga kumbukumbu *p = 42; // andika thamani achilia(p); // achilia kumbukumbu } ``` ### Miito na Urejeshaji ```swa // Tangazo la mbele W0 mkuu() { msaidizi(42); } W0 msaidizi(N32 x) { andika("Thamani: %d\n", x); } // Kujirudia N32 kitanzi(N32 n) { kama (n <= 0) { rudisha 0; } rudisha 1 + kitanzi(n - 1); } ``` ## Vipengele - **Maneno muhimu 42** ya Kiswahili -- hakuna Kiingereza katika sintaksia - **Kujitegemea (100%)** -- mnyororo wa kujikusanya umefungwa kabisa: baiti za mkono → mbegu → stage1-exe → stage2-exe == stage3-exe (mnyororo wa uzalishaji; uthabiti wa makosa ni mhimili tofauti — angalia hati/mipaka.md) - **Vizalishe viwili**: LLVM (majukwaa yote) + asilia (x86-64 ELF moja kwa moj …