OD (date obiect) - variabile, constante - un loc abstract unde datele pot fi stocate.
1) static - în momentul difuzării, ansamblul (care leagă) - în ceea ce privește PL.
2) dinamică - în timpul funcționării programului - între ML și valoarea sa: V = 30;
3) cvasistatice (constanta: const C = 20;)
Cel mai imperativ PL - statică de legare.
Java Scrypt, php ... - legare dinamică. (În principal aceste limbi sunt interpretate).
Ada 83. Orice ML are un tip.
În PL convențională - orice OD este singurul tip.
OOYAP - orice OD are un tip static. (Base d;)
Cu toate acestea, unele DO poate avea un tip dinamic.
C ++. indicii și referințe (bază * p;).
Definirea apariției excepțiilor - aceasta este o capcană:
Dynamically are loc (chiar și în PL statică - C ++)
Verificarea statică - verificarea atunci când compilarea programului. Verificați datele nu se schimba intr-o varietate de apeluri de funcții (program de pornire)
A: array [1..100] din întreg;
o [10] = 10; încercare statică
testul quasi-statice - controale în timpul rulării. Ele sunt numite cvasi-statice, deoarece datele verificabile pot varia în diferite apeluri
Funcția (program de pornire). Prin urmare, aceste teste sunt făcut în performanță.
Compilatorul detectează loc periculos în program și se introduce în acest loc codul cvasi-statice, care vor fi executate în timpul programului.
a: array [1..100] din întreg;
a [n] = 10; n nu este cunoscută în momentul compilării. În cazul în care limba de sprijin
cvasi-statică de test, vor fi inserate în controlul de ieșire al șirului.
În limbile de calculator nici un test de cvasi-statice. Prin urmare, există și Xi.
Care clase de memorie pot fi plasate în limbile date
programare? Ce clase de memorie adăpostite clasa de obiecte
În C #, clase de obiecte sunt plasate numai pe heap.
2. Tipurile de date de bază în limbaje de programare: simplu,
tipuri de date compozite, operații pe ele
Tipuri de date aritmetice: numere întregi, plutitoare, fixe.
prezentare Fixation: Java, C #.
Gama: toate celelalte
Problemele reprezintă numerele și soluțiile lor în PL.
Sunt implicite: C ++ și C.
Aducerea numai aparentă: în Modula-2, există două tipuri de INTEGER și CARDINAL. Și pentru a aduce unul la altul a fost permis doar aparentă (a existat un operator special pentru această misiune):
I: integer; J: CARDINAL; I: = INTEGER (J);
În Oberon există doar un singur octet fără semn (0..255)
Deci, în C # am decis să permită numai lărgirea de conversie (în care acestea sunt în siguranță). Transformarea Inverse este permisă numai în mod clar.
Iadul. Ei au introdus tipuri generalizate de date numerice. Obiecte de diferite tipuri au fost incompatibile și nici cu privire la orice set de operațiuni, dar sunt obiecte compatibile subtipuri. Asta este, diferite subtipuri sunt compatibile între ele și cu strămoșul lor.
Tip Lungime este nou număr întreg;
Type Width este nou număr întreg;
Lungimea și lățimea - noi tipuri de date întreg, astfel că nu pot fi atribuite reciproc, nici comparate. Cu toate acestea, puteți face conversia în mod explicit.
Tip Lungime în nouă gamă întreagă 0..MAXN.
Ce plus generice, este faptul că toate erorile detectate în timpul compilării.
Dacă este necesar, conversii implicite, a introdus subtipuri.
Sybtype T1 este gama t2 0..N.
Și apoi conversia de la T1 la T2 permise. În acest caz, compilatorul alege
performanțe optime pentru astfel de numere. Acum, compilatorul traducere atribuirea de tipuri de date, sau verificați posibilitatea unei astfel de cesiune la traducere sau inserați codul pentru a verifica admisibilitatea unei astfel de atribuire (de control cvasi-statice). În cazul erorilor de ieșire de peste mări din Ada gama excitat de eroare.
Caracter și booleene tipuri de date
Ada. tipul boolean este (false, true); // reprezentare a unui boolean
p. Boolean: = true;
Pe drum este singura limbă cu conversie implicită de int pentru a bool
Delphi, Pascal. var p: boolean
Tipuri de ordine: raza de acțiune și listare. Caracteristici ale punerii în aplicare a transferurilor curente în PL.