Typovost jazyka

Programovacie jazyky, rady, poradňa...
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Typovost jazyka

Príspevok od používateľa failExperiment »

Aky je rozdiel medzi slabotypovym jazykom a beztypovym jazykom ?
manager666
Star
Star
Používateľov profilový obrázok
Príspevky: 642
Registrovaný: 12 aug 2007, 13:29

Re: Typovost jazyka

Príspevok od používateľa manager666 »

Sila typovosti je odvodena podla obmedzeni kladenych na zmenu typu:

- netypovany jazyk = ziadne typy nie su, bez obmedzeni
- slabo typovane jazyky = typy su, slabe obmedzenia
- silno typovane jazyky = vyrazne obmedzenia na zmenu typu

Netypovany jazyk je jazyk PHP.
Slabo typovany jazyk je jazyk C, pretoze je mozne pretypovavat medzi nekompatibilnymi typmi(co je potencialne nebezpecne).
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Typovost jazyka

Príspevok od používateľa weroro »

Doplním managera666:

netypový jazyk napr. PHP
slabo typový jazyk napr. JavaScript alebo C
silne typový jazyk napr. ActionScript 3.0
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Typovost jazyka

Príspevok od používateľa axxis »

wow, ako obycajne hovori zo mna lakohol. ale!
spravili ste, ze totalne jasno v tejto otazke... pretoze beztypovy jazyk Vam totalne nedovoli spravit typovo nebezpecnu konverziu...to musi byt ten najvaci rozdiel medzi slabo typovym a netypovym jazykom

v pythone absolutne nemozete spravit nieco v style

Kód: Vybrať všetko

x = 15
x = "21"
y = "63"
print x+y
a z Vasho vysvetlenia je mi hned jasne aky rozdiel bude pri zachovani absolutne rovnakej syntaxe pri lsabom typovani a ziadnom typovani
Spoiler
manager666 napísal:Sila typovosti je odvodena podla obmedzeni kladenych na zmenu typu:

- netypovany jazyk = ziadne typy nie su, bez obmedzeni
- slabo typovane jazyky = typy su, slabe obmedzenia
- silno typovane jazyky = vyrazne obmedzenia na zmenu typu


Netypovany jazyk je jazyk PHP.
Slabo typovany jazyk je jazyk C, pretoze je mozne pretypovavat medzi nekompatibilnymi typmi(co je potencialne nebezpecne).
hlavne toto je definica jak hrom
melon je melon ak je cerveny

jedine co mi tu chyba je podotknut, ze auto je auto ak ma 4 kolesa a jazdi a lietadlo je lietadlo ak lieta.
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Typovost jazyka

Príspevok od používateľa weroro »

Veď a niekto tu napísal niečo iné?

v PHP (netypovom) ti prejde toto:

Kód: Vybrať všetko

$a = 2;
$b = "3";
echo $a+$b; // vypíše súčet $a+$b = 5
a tak isto aj toto:

Kód: Vybrať všetko

$a = "2";
if ($a == 2)
{
	echo $a;
}
v JavaScripte (slabo-Typovom) toto neprejde:

Kód: Vybrať všetko

     var a = 2;
     var b = "3";
     alert(a+b); // vypíše 23 a nie súčet
ale toto prejde:

Kód: Vybrať všetko

            var a = "2";
            if (a == 2)
            {
              alert(a)
            }
v ActionScripte (silne typovom) toto neprejde:

Kód: Vybrať všetko

var a:Number = 2;
var b:String = "3";
trace(a+b); // tak ako v JS vypíše 23
a toto tak isto neprejde

Kód: Vybrať všetko

var a:String = "2";
if (a == 2)
{
    trace(a);
}
tiež treba podotknúť, že pri netypovom môžeme premennú, v ktorej je číslo prepísať stringom, to ale napr. v ActionScripte nemôžeme. Kompilátor by nás zasypal tonami chybových hlášok.

kľudne ma opravte ak som niečo dovrzal.
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Typovost jazyka

Príspevok od používateľa axxis »

cela pointa mojho prispevku bola o tom, ze ste nespravili absolutne ziadny explictny rozdiel medzi slabo typovanym a netypovanym jazykom.

ergo, ak robis typovo nebezpecne operacie tak sa to sprava vsade rovnako bez jasneho pravidla. v slabo typovanych aj netypovanych ( napr. 5+"5", bud dostanes 10 alebo "55". zalezi to cisto od toho ako je napisany compilator/interpreter a nie od jazyku resp. jeho vlastnosti ) - to znamena, ze Vasa definica rozhodne nebola spravna pretoze nedava ziadny podstatny rozdiel (hlavne mnou citovana dfinica bola tak velmi vagna a blba, ze som ju dal do cervenej)

priznam sa, ze v tejto chvili ma nenapada ziadny hmatatelny rozdiel, ale viem, ze Vy ste ziadny nespravili

+viem, ze v netypovanom jazyku mozes menit co chces na co chces
vid python

Kód: Vybrať všetko

x = 1
x = objekt
x = macka 
a furt nedostanes vynimku

Tvoje kody, su sice spravne, ale ziadny rozdiel si aj tak nenapisal
v JavaScripte (slabo-Typovom) toto neprejde:

Kód: Vybrať všetko

  var a = 2;
     var b = "3";
     alert(a+b); // vypíše 23 a nie súčet
nechcem byt zly na Teba, ale ak to napise "23" (alebo 23 v stringu ak Ta to potesi) tak to preslo. ziadny fail nenastal, akurat rozdielne vyhodnotenie. to, ze nieco neprejde neznamena, ze to vrati hodnoty ktore Ty konkretne neocakvas, ale ze to padne na vynimke a posle Ta to do prdele. to, ze si dostal nieco ine znamena, ze clovek, ktory to stvoril rozmyslal inak ako Ty

Kód: Vybrať všetko

var a:Number = 2;
var b:String = "3";
trace(a+b); // tak ako v JS vypíše 23
ak Ti toto jazyk schrusta tak je vsetko len nie silne typovany. vysledok "23" (23 v stringu) znamena, ze nieco muselo zmenit typ -> slabe typovanie. skus spravit to iste v C# a dostanes vynimku. var je sice na prvy pohlad dynamicka ci slaba premenna, ale kompilator si ju zmeni pri niektorom prechode na silny typ a urcite Ti nedovoli scitat string a integer (ak si si niekde v dialke neimplementoval metodu integeru .toString(), ktora potom vola automaticky)

edit:// mea culpa. v C# sa da scitat string a integer. objektovy integer ma impelemtovany implicitny toString. takze "5"+3 je vo vylsledku stringovy "53". peace
ale to je specifikum jazyka, stale plati, ze taketo veci sa v silne typovanom jazyku generalne robit nedaju
manager666
Star
Star
Používateľov profilový obrázok
Príspevky: 642
Registrovaný: 12 aug 2007, 13:29

Re: Typovost jazyka

Príspevok od používateľa manager666 »

axis, ospravedlnujem sa, ale nechce sa mi citat tvoje prispevky do konca.
Prepisem ti svoj prispevok tak, ako ho priemerne inteligentny clovek pochopi:

Sila typovosti je odvodena podla obmedzeni kladenych na zmenu typu:

- netypovany jazyk = ziadne typy nie su, zmena typu je bez obmedzeni
- slabo typovane jazyky = typy su, zmenu typu sprevadzaju slabe obmedzenia
- silno typovane jazyky = typy su, existuju vyrazne obmedzenia na zmenu typu


Vyckaj do zajtra, ked budes striezvy. Precitaj si (aj) to, co som ti vyznacil tucnym pismom a uznaj(kludne len pre seba v duchu), ze to, co si napisal je nezmysel a pouc sa z toho.
Ak mi aj po tejto korekcii napises, ze som vobec nevysvetlil podstatu, tak vrat diplom, ak nejaky mas.
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Typovost jazyka

Príspevok od používateľa weroro »

manager666 napísal:Ak mi aj po tejto korekcii napises, ze som vobec nevysvetlil podstatu, tak vrat diplom, ak nejaky mas.
Mňa presvedčil, čo je ale zas spôsobené tým, že som informatiku neštudoval a tak neviem všetky teoretické záležitosti ohľadne tejto problematiky.
manager666
Star
Star
Používateľov profilový obrázok
Príspevky: 642
Registrovaný: 12 aug 2007, 13:29

Re: Typovost jazyka

Príspevok od používateľa manager666 »

a cim ?
Takymito podobnymi vyhlaseniami ?
axxis napísal:pretoze beztypovy jazyk Vam totalne nedovoli spravit typovo nebezpecnu konverziu...
Beztypovy jazyk, ktory nema typy, ti vraj nedovoli urobit typovo nebezpecnu konverziu. Dovol mi, zasmiat sa. :lol:

Tymto ukoncujem svoju ucast v tejto teme. Myslim si, ze som podstatu vysvetlil a viac netreba. :smt006
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Typovost jazyka

Príspevok od používateľa failExperiment »

no, ked som si vsetko precital, tak som este viac zmäteny ako predtym
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Typovost jazyka

Príspevok od používateľa axxis »

manager666 napísal:axis, ospravedlnujem sa, ale nechce sa mi citat tvoje prispevky do konca.
Prepisem ti svoj prispevok tak, ako ho priemerne inteligentny clovek pochopi:

Sila typovosti je odvodena podla obmedzeni kladenych na zmenu typu:

- netypovany jazyk = ziadne typy nie su, zmena typu je bez obmedzeni
- slabo typovane jazyky = typy su, zmenu typu sprevadzaju slabe obmedzenia
- silno typovane jazyky = typy su, existuju vyrazne obmedzenia na zmenu typu


ty fakt nemas ani najmensie ponatie o com hovoris, vsak?

Vyckaj do zajtra, ked budes striezvy. Precitaj si (aj) to, co som ti vyznacil tucnym pismom a uznaj(kludne len pre seba v duchu), ze to, co si napisal je nezmysel a pouc sa z toho.
Ak mi aj po tejto korekcii napises, ze som vobec nevysvetlil podstatu, tak vrat diplom, ak nejaky mas.

za prve: triezvy a nie striezvy
za druhe: Tvoja definicia pre inteligentneho cloveka rovnako debilna ako ta prva. tymto odo mna oficialne vyhravas cenu captain obvious level 9000 a zaroven mi dovol poblahozelat k tomu, ze dokazes slovne spojenie prepisat do rozvitej vety.
za tretie: uz som vytriezvel a bohuzial moje prispevky su stale lepsie nez to co si zo seba vysukal Ty
za stvrte: to, ze si necital cely moj prispevok je Tvoj problem, nie moj. mozno keby si ho precital cely tak by si videl ako som v pythone (netypovoom) robil uplne sialene operacie a mozno by Ti doslo, ze to predtym bola ironia a vo finalnej casti by si zo seba nespravil nechapaveho kretenka

pre tych, ktori nevedia este raz:
netypovny jazyk je taky jazyk, ktory nema typy a nema obmedzenia (you dont say :o )
slabo typovany jazyk je taky jazyk kde zmenu typu spravadzaju slabe obmedzenia (tak ale toto nikto necakal)
silne typovany jazyk, ktory ma vyrazne obmedzenia na zmenu typu (oh ja blbec, ze som to nevedel)

Tvoje odpovede su na urovni skolaka, ktory nepozna odpoved tak odpoveda stylom "Velka oktobrova revolucia to bola taka revolucia, ze bola uplne vela a bla v oktobri". ak hento povazujes za inteligentne tak si na chvilku sadni a este raz prehodnot svoje ponimanie slova inteligencia. nevysvetlil si ani hovno a este si myslis, ze si nadradena rasa. doh.
manager666 napísal:a cim ?
Takymito podobnymi vyhlaseniami ?

Beztypovy jazyk, ktory nema typy, ti vraj nedovoli urobit typovo nebezpecnu konverziu. Dovol mi, zasmiat sa. :lol:

Tymto ukoncujem svoju ucast v tejto teme. Myslim si, ze som podstatu vysvetlil a viac netreba. :smt006
mega facepalm :smt046 ironia Ty inteligent. hovori Ti nieco to slovo? ak nie pouzi ten svoj velky mozog a dohladaj si ho na googli, potom si precitaj moj prispevok este raz a pokus sa aj pochopit miesto toho aby si si ho len precital

edit:// tymto vyhlasujem mamazera666 za odbornika na vsetko. pytajte sa co chcete, dostanete inteligentnu, objasnujucu odpoved na vsetko
Napísať odpoveď