Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!
Dibilų kalba
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 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ų 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 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 angliška, o dibilų kalba yra lietuviška.
Atskirai išskirtinės nuorodos būdu duodame jums išsyk nuorodą bandymams: 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
Žemiau pateikiame kažkiek programų pavyzdžių, parašytų šita dibilų kalba - visi tie pavyzdžiai puikiai dirba ant dibilų kalbos interpretatoriaus. Gal paskui ir patį interpretatorių kažkur paskelbsim, kad galėtumėte daugiau programų parašyt ir išbandyt.
Hello World dibilų kalba
LABAS
PARASAI "Labas dibile"
ATE
Paprasta aritmetika
LABAS
PEZALAI
cionai programa, kuri rodo paprasciausia aritmetika su kintamaisiais
ir paskui ta aritmetikos rezultata isveda i ekrana jums
NESVARBU
PAS MANE YRA X
PAS MANE YRA Y
X DABAR YRA 4
Y DABAR YRA 3
X DABAR YRA SUMA IS X IR Y
Y DABAR YRA SANDAUGA IS Y IR 2
X DABAR YRA SANDAUGA IS X IR 2
X DABAR YRA SUMA IS X IR Y
Y DABAR YRA SKIRTUMAS IS Y IR 1
X DABAR YRA DALYBA IS X IR Y
PARASAI "X yra :{X} o Y yra :{Y}"
ATE
IF/ELSE demonstracija
TA PRASME cionai yra pirma dibilu kalbos programa is viso
LABAS TA PRASME jau pati programa
PAS MANE YRA GYVULYS
DUOK MAN GYVULYS
ATRODO KAD GYVULYS YRA "kate", AR TIKRAI?
TAIP TIKRAI
PARASAI "pas tave yra kasaras"
TADA JEIGU ATRODO KAD GYVULYS YRA "pele"
PARASAI "kasaras suede ziurke"
NU TADA
PARASAI "byby dejau"
BAIGES VARIANTAI
ATE
Ciklo demonstracija
LABAS TA PRASME demonstruojam cikla
MAN REIKE STDIO?
PAS MANE YRA NUMERELIS
DABA GERAI PRASISUKSIM RATUKU
DIDINAM NUMERELIS!!1
PARASAI NUMERELIS
JEIGU NUMERELIS DIDESNIS NEGU 9?, EIKNX, VISKAS
VISKAS
ATE
Funkcijų deklaravimas
LABAS
TA PRASME cionai pavyzdys kaip funkcijas aprasyti
TA PRASME pirma SUDEJIMAS:
DABAR DARAI TAIP SUDEJIMAS YRA SKAICIUX1 IR YRA SKAICIUX2
SUMA IS SKAICIUX1 IR SKAICIUX2
TAI VAT TAIP DARAI
TA PRASME dabar SUDALINIMAS bet graziau
DABAR DARAI TAIP SUDALINIMAS YRA SKAICIUX1 IR YRA SKAICIUX2
PAS MANE YRA PADALINIMAS KURIS YRA DALYBA IS SKAICIUX1 IR SKAICIUX2
RADAU YRA PADALINIMAS
TAI VAT TAIP DARAI
TA PRASME dabar tas funkcijas panaudojam:
PAS MANE YRA NUMERELIS KURIS YRA SUDALINIMAS 20 10
PARASAI NUMERELIS
NUMERELIS DABAR YRA SUDEJIMAS 20 10
PARASAI NUMERELIS
ATE
Visokių operatorių naudojimas
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
Case variantai
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
Rekursija visame gražume
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