Dibilų kalba: Skirtumas tarp puslapio versijų

8 583 pridėti baitai ,  23:32, 27 rugsėjo 2023
Atšaukta atgal į versiją su veikiančia nuoroda, kad nebūtų neveikiančios nuorodos
(Atšaukta atgal į versiją su veikiančia nuoroda, kad nebūtų neveikiančios nuorodos)
Žyma: Manual revert
 
(nerodoma 16 tarpinių versijų, sukurtų 2 naudotojų)
1 eilutė: 1 eilutė:
[[Vaizdas:Programavimas_dibilu_kalba.jpg|400px|thumb|right|DABAR DARAI TAIP, PAS MANE YRA KANTUPERIS KURIS YRA DIBILAS...]]
'''Dibilų kalba''', '''dibilkalbė''' arba '''dibilangas''' (iš santrumpos nuo ''dibil-language'') - moderni ir puiki [[programavimo kalba]], priskiriama prie ezoterinių, nes normaliems žmonėms nelabai suprantama. Pagal kilmę - lietuviška, siejama su [[dibilai|dibilais]], nes nuo šitų yra kilęs pats kalbos pavadinimas.
'''Dibilų kalba''', '''dibilkalbė''' arba '''dibilangas''' (iš santrumpos nuo ''dibil-language'') - moderni ir puiki [[programavimo kalba]], priskiriama prie ezoterinių, nes normaliems žmonėms nelabai suprantama. Pagal kilmę - lietuviška, siejama su [[dibilai|dibilais]], nes nuo šitų yra kilęs pats kalbos pavadinimas.


Išties gi dibilų kalba buvo sukurta kaip bandymas įrodyti, kad net visiški idiotai gali būti ne mažiau logiški, negu [[kompiuteriai]], nes svarbu tiktai viską aiškiai jiems išaiškinti. Todėl dibilų kalba vienareikšmiai prieštarauja įvairių [[kalbainiai|kalbainių]] aiškinimams, esą [[lietuvių kalba]] nelogiška ir niekaip netinkama griežtoms ir vienareikšmėms konstrukcijoms rašyti.
Išties gi dibilų kalba buvo sukurta kaip bandymas įrodyti, kad net visiški idiotai gali būti ne mažiau logiški, negu [[kompiuteriai]], nes svarbu tiktai viską aiškiai jiems išaiškinti. Todėl dibilų kalba vienareikšmiai prieštarauja įvairių [[kalbainiai|kalbainių]] aiškinimams, esą [[lietuvių kalba]] nelogiška ir niekaip netinkama griežtoms ir vienareikšmėms konstrukcijoms rašyti.


Dar pagal savo kilmę dibilų kalba siejama su tokia [[Lolcode]] - primityvia, bet pilnaverte programavimo kalba, imituojančia visokius [[lolketai|lolketus]], mat savo bukumu tie lolketai atitika tipiškus dibilus. Sintaksė tokia buka, kad šios kalbos tiesiog visiškai panašios.
Dar pagal savo kilmę dibilų kalba siejama su tokia [[Lolcode]] - primityvia, bet pilnaverte programavimo kalba, imituojančia visokius [[lolketai|lolketus]], mat savo bukumu tie lolketai atitika tipiškus dibilus. Sintaksė tokia buka, kad šios kalbos tiesiog visiškai panašios, tik kad lolketų kalba yra [[anglų kalba|angliška]], o dibilų kalba yra [[lietuvių kalba|lietuviška]].


Atskirai išskirtinės nuorodos būdu duodame jums išsyk nuorodą bandymams: [http://burgzt.brigin.lt/dibilai/ online dibilų kalbos interpretatorius].
== Dibilų kalbos gramatika ==
Šiuo metu, versijoje 1.0 dibilų kalba palaiko tiktai didžiąsias raides. Naudojama prefiksinė notacija (t.y., vadinamoji lenkiškoji), kur argumentai yra užrašomi po to, kai yra užrašomas operatorius, abu argumentus naudojantis.
Savo esme kalba yra struktūrinė, savo pobūdžiu labiau primena [[Algol]] grupės kalbas. Reikalaujama kintamųjų deklaracijos ir tiesioginio priskyrimo. Tipizacijos griežtumas priklauso nuo transliatoriaus realizacijos.
=== Bendra sintaksė ===
Bet kuri programa pradedama raktiniu žodžiu ''LABAS'', užbaigiama raktiniu žodžiu ''ATE''. Komentarai toje pačioje eilutėje rašomi, pradedant raktiniu žodžiu ''TA PRASME''. Daugiaeilučiai komentarai pradedami raktiniu žodžiu ''PEZALAI'' ir užbaigiami raktiniu žodžiu ''NESVARBU''.
Sakiniai skiriami naujomis eilutėmis arba kableliais, jeigu prireikia kelis sakinius įrašyti vienoje eilutėje.
Papildomos bibliotekos, jei tokių prireikia, įtraukiamos, naudojant raktinį žodį ''MAN REIKE'', pvz.:
* MAN REIKE STDIO?
Šiuo metu papildomų bibliotekų įtraukimas nėra realizuotas, todėl ignoruojamas.
=== Duomenų įvedimas/išvedimas ===
Standartinis išvedimas realizuojamas per funkciją ''PARASAI''. Pvz.:
* PARASAI KINTAMASIS
* PARASAI "tekstas"
Standartinis įvedimas realizuojamas per funkciją ''DUOK MAN'', kuriai perduodamas kintamasis, į kurį perkeliama įvesta reikšmė. Pvz.:
* DUOK MAN KINTAMASIS
=== Kintamųjų deklaravimas, operacijos ir priskyrimas ===
Deklaravimas vykdomas pagal raktinį žodį ''PAS MANE YRA'', kuriam perduodamas deklariojamo kintamojo pavadinimas. Pvz.:
* PAS MANE YRA KINTAMASIS
Reikšmės priskyrimas kintamąjam vykdomas pagal raktinį žodį ''DABAR YRA''. Pvz.:
* KINTAMASIS DABAR YRA 5
Operacijos vykdomos, naudojant lenkiškąją (prefiksinę) notaciją. Vietoje skirtuko tarp parametrų naudojamas raktinis žodis ''IR''. Pvz.:
* KINTAMASIS DABAR YRA SUMA IS 3 IR 4
=== Funkcijų deklaravimas ===
Funkcija deklaruojama, pradedant ją raktiniu žodžiu ''DABAR DARAI TAIP'' ir pabaigiant raktiniu žodžiu ''TAI VAT TAIP DARAI''. Rezultatas grąžinamas per operatorių ''RADAU YRA'':
: DABAR DARAI TAIP ''PAVADINIMAS'' YRA ''PARAMETRAS''
: ''operacijos''
: RADAU YRA ''grazinamas rezultatas''
: TAI VAT TAIP DARAI
=== Ciklai ===
Standartinis ciklas deklaruojamas per raktinį žodį ''DABA GERAI PRASISUKSIM RATUKU''. Išėjimas iš ciklo - per operatorių ''JEIGU sąlyga EIKNX'' (break), ciklo pabaiga - per raktinį žodį ''VISKAS'':
: DABA GERAI PRASISUKSIM RATUKU
: operacijos
: JEIGU sąlyga, EIKNX, VISKAS
: VISKAS
=== Sąlyginiai sakiniai ===
==== Jeigu (If/Else) sakiniai ====
Standartinis sąlyginis sakinys vykdomas per operatorių ''AR TIKRAI?''. Sąlyga tenkinanti vykdymo šaka vykdoma per ''TAIP TIKRAI'' (if), alternatyvinė sąlyga (else if) - per ''TADA JEIGU'', bendra alternatyva per ''NU TADA'' (else). Užbaigiama raktiniu žodžiu ''BAIGES VARIANTAI'':
: ATRODO KAD ''sąlyga'', AR TIKRAI?
: TAIP TIKRAI
: ''operacijos''
: TADA JEIGU ATRODO KAD ''sąlyga2''
: ''operacijos''
: NU TADA
: ''operacijos''
: BAIGES VARIANTAI
==== Variantinis sakinys (case operatoriai) ====
Standartinis variantinis sakinys pradedamas per raktinį žodį ''VARIANTAI?'', patys variantai nagrinėjami per raktinį žodį ''GAVOSI'', kuris suveikia atitikties atveju. Išėjimas vykdomas per raktinį žodį ''EIKNX'', alternatyvinis variantas, vykdomas nesuradus atitikties - ''NESIGAVO'', užbaigiama raktiniu žodžiu ''VISKAS'':
: KINTAMASIS, VARIANTAI?
: GAVOSI ''patikrinimas''
: ''operacijos''
: GAVOSI ''patikrinimas''
: ''operacijos''
: EIKNX
: NESIGAVO
: ''operacijos''
: VISKAS
=== Operatorių sąrašas ===
==== Aritmetiniai operatoriai ====
* SUMA IS
* SANDAUGA IS
* DALYBA IS
* SKIRTUMAS IS
* LIEKANA IS
==== Loginiai operatoriai ====
Binariniai operatoriai, naudojami su dviem operandais:
* ABUDU IS - loginis IR
* VIENAS IS - loginis IRBA
Unariniai operatoriai, naudojami su vienu operandu:
* NE - loginis NE, t.y., inversija
==== Daugiaparametriniai operatoriai ====
Šie operatoriai išsiskiria tuo, kad jiems galima nurodyti daugiau kaip vieną arba du kintamuosius:
* BET KURIS IS - loginis IRBA
* VISI IS - loginis IR
* SUKISAM - konkatenacija, naudojama tekstui ir kintamiesiems apjungti į bendrą tekstinį kintamąjį
==== Kiti operatoriai ====
* ATRODO KAD - lygybė
* SKIRIASI - nelygybė
* DIDESNIS IS - palyginimas
* MAZESNIS IS - palyginimas


== Dibilų kalbos pavyzdžiai ==
== Dibilų kalbos pavyzdžiai ==
15 eilutė: 117 eilutė:
  ATE
  ATE
</code>
</code>


=== Paprasta aritmetika ===
=== Paprasta aritmetika ===
74 eilutė: 175 eilutė:
  ATE
  ATE
</code>
</code>


=== Funkcijų deklaravimas ===
=== Funkcijų deklaravimas ===
91 eilutė: 191 eilutė:
   RADAU YRA PADALINIMAS
   RADAU YRA PADALINIMAS
  TAI VAT TAIP DARAI
  TAI VAT TAIP DARAI
 
  TA PRASME dabar tas funkcijas panaudojam:
  TA PRASME dabar tas funkcijas panaudojam:
  PAS MANE YRA NUMERELIS KURIS YRA SUDALINIMAS 20 10
  PAS MANE YRA NUMERELIS KURIS YRA SUDALINIMAS 20 10
97 eilutė: 197 eilutė:
  NUMERELIS DABAR YRA SUDEJIMAS 20 10
  NUMERELIS DABAR YRA SUDEJIMAS 20 10
  PARASAI NUMERELIS
  PARASAI NUMERELIS
ATE
</code>
=== Visokių operatorių naudojimas ===
<code>
LABAS
TA PRASME naudojam prefiksine (lenkiska) notacija, tai reik ziuret kaip skaicius delioji
TA PRASME nes pirma operacija o tada jau operandai eina, panasiai kaip exelio fromulese
TA PRASME (1*2) + (3/4) bus su tokia logika: suma(sandauga(1,2),dalyba(3,4))
PAS MANE YRA X
X DABAR YRA SUMA IS SANDAUGA IS 1 IR 2 IR DALYBA IS 3 IR 4
PARASAI "X yra :{X}"
TA PRASME yra dar operatoriai su neapibreztu kiekiu operandu, tai juos terminuojam su TAI TIEK:
TA PRASME cionai taip idedam neapibreztini BET KURIS IS i binarini ABUDU IS tai gaunasi jau idomiai
PARASAI ABUDU IS BET KURIS IS TEISYBE IR TEISYBE IR MELAS IR TEISYBE TAI TIEK IR TEISYBE
TA PRASME galime padaryti ir funkcijas kurios irgi bus kaip operatoriai
TA PRASME galesim funkcijas naudot vietoje operatoriu operandu:
TA PRASME cionai jum funkcija kuri vadinasi XORINAM tai reiskia XOR irba ekskliuzinanti ARBA
DABAR DARAI TAIP XORINAM YRA SKAICIUX1 IR SKAICIUX2
  PAS MANE YRA X KURIS YRA NE ABUDU IS SKAICIUX1 IR SKAICIUX2
  X DABAR YRA ABUDU IS X IR VIENAS IS SKAICIUX1 IR SKAICIUX2
  RADAU YRA X
TAI VAT TAIP DARAI
TA PRASME komanda SUKISAM leidzia viska konkatenuoti i kruva, bet ka padaro tekstu
PARASAI SUKISAM "XORINAM 1 IR 0 = " YRA XORINAM 1 IR 0 TAI TIEK
TA PRASME cionai jau parasom sudetingai viska su funkcija ir operatoriais iskart
TA PRASME cia taip suprast: suma(xorinam(suma(0,1), 0), 2) = 3
PARASAI SUMA IS XORINAM SUMA IS 0 IR 1 IR 0 IR 2
ATE
</code>
=== Case variantai ===
<code>
LABAS
TA PRASME cionai case panaudojimas paprastas bet interaktyvus
PAS MANE YRA ALUS
PARASAI "kox pas mane alus???"
DUOK MAN ALUS
ALUS, VARIANTAI?
  GAVOSI "Carlsberg"
  GAVOSI "carlsberg"
    PARASAI "zalia bonke - skonis kaip zoles"
  GAVOSI "Utenos"
  GAVOSI "utenos"
  GAVOSI "Svyturys"
  GAVOSI "svyturys"
  GAVOSI "Svyturio"
  GAVOSI "svyturio"
    PARASAI "pirk preke lietuviska"
  GAVOSI "sviesus"
    PARASAI "sviesus alus - kaip vanduo"
    EIKNX
  GAVOSI "Ginesas"
  GAVOSI "Guiness"
  GAVOSI "Guines"
    PARASAI "geras alus kaip sriuba"
  GAVOSI "grimbergen"
  GAVOSI "Grimbergen"
    PARASAI "nu tu cionai pasikeles kazkox"
  GAVOSI "Baltijos"
  GAVOSI "baltijos"
  GAVOSI "tamsus"
    PARASAI "tamsus alus - greit kepenis pragersi"
    EIKNX
  GAVOSI "zaibo"
  GAVOSI "kobra"
  GAVOSI "kobros"
    PARASAI "chroniau eik bonkiu rinkt"
  GAVOSI "degtine"
    PARASAI "tu alchasas tau jau niex nepades"
    EIKNX
  GAVOSI "vynas"
    PARASAI "tu gal kox UZKALNIS pasikeles labai"
    EIKNX
  NESIGAVO
    PARASAI "isvis tu ce geri kazkoki bruda"
VISKAS
PARASAI "alkoholi geri busi alchasas o paskui bomzas"
ATE
</code>
=== Rekursija visame gražume ===
<code>
LABAS
TA PRASME tai yra klasikine programa rekursijai demonstruoti
TA PRASME ji skaiciuja faktoriala kuris is saves paties tai gerai rodo navarotus
TA PRASME pirma parasom rekursine funkcija:
DABAR DARAI TAIP FAKTORIJOLAS SKAICIUX
ATRODO KAD 0 YRA DIDESNIS IS SKAICIUX IR 0, AR TIKRAI?
  TAIP TIKRAI
    RADAU YRA 1
  NU TADA
    RADAU YRA SANDAUGA IS SKAICIUX IR FAKTORIJOLAS SKIRTUMAS IS SKAICIUX IR 1
VISKAS
TAI VAT TAIP DARAI
PAS MANE YRA NUMERELIS
DUOK MAN NUMERELIS
TA PRASME reikia dar paverst i skaiciu nes bbz ka mum irase cionai tai konvertuojam tipus:
NUMERELIS PAVERCIAM I NUMERIS
TA PRASME dar reik patikrint ar neparase minusino skaiciaus nes nesamone bus jei maziau uz nuli
ATRODO KAD 0 YRA DIDESNIS IS NUMERELIS IR 0, AR TIKRAI?
  TAIP TIKRAI
    NUMERELIS DABAR YRA 0
VISKAS
NUMERELIS DABAR YRA FAKTORIJOLAS NUMERELIS
PARASAI SUKISAM "Surastas faktorijolas jis yra " NUMERELIS
   
   
  ATE
  ATE
</code>
</code>
[[Category:Programavimo kalbos]]
[[Category:Programavimo kalbos]]
499

pakeitimai