Hardware și software structura de cele mai multe calculatoare moderne - mai multe niveluri. Detalii privind nivelurile inferioare sunt ascunse pentru a oferi un model simplu pentru nivelul superior. Acest principiu este o abstracție - un proces prin care hardware și software proiectanții trebuie să facă față complexității sistemelor informatice.
Orice tehnologie modernă program sau software-ul poate fi reprezentat ca un set de „straturi“ de software. Fiecare dintre aceste straturi produce propria sa lucrare, care este de a ridica nivelul de abstractizare al operațiunilor. Astfel, cel mai de jos strat (e) introduce un concept care permite decuplarea echipamentului utilizat; Urmatorul strat (e) permite programatorului să abstracte dintr-o secvență complexă de apeluri de funcții prin introducerea unui concept ca un protocol etc. Practic, orice produs software modern poate fi detectat și să ofere aproximativ zece straturi succesive de abstractizare.
La nivelul superior al aplicațiilor de captare a utilizatorilor acces la interfața de programare a aplicațiilor (interfață de programare a aplicațiilor - API), care este un set de funcții de bibliotecă. API-ul este structurat în subsisteme. și să extindă setul de subsisteme. niveluri mai scăzute de abstractizare pune în aplicare nucleul sistemului de operare care efectuează managementul memoriei, programarea de activitate, și de gestionare a dispozitivului. În cele din urmă, la cel mai scăzut nivel de abstractizare implementate drivere de dispozitiv.
Tendința actuală este nevoia de abstractizare și de ele însele sisteme de operare, care va permite transferul programului de la un sistem de operare la altul prin simpla recompilare (programe de difuzare, cea mai mare parte nu necesită nici o acțiune privind transferul).
Abstractizare, care este disponibil pentru programator ca bibliotecile poate fi numit un API de bază. Acesta este cel mai scăzut nivel de abstractizare, care este disponibil pentru programare a aplicațiilor. La nivelul nucleului este disponibil, și niveluri mai scăzute de abstractizare, dar utilizarea lor este necesară pentru a dezvolta programe speciale (module driver). Stratul de bază de abstractizare (API) oferă posibilități maxime pentru programare de aplicații și este cel mai flexibil. Cu toate acestea, programarea folosind API-ul este mult mai consumatoare de timp și conduce la volume mult mai mari de cod sursă decât de programare folosind biblioteci suplimentare.
biblioteci suplimentare sunt disponibile cu o serie de instrumente de dezvoltare în scopul de a reduce complexitatea și calendarul programului de dezvoltare, care în cele din urmă duce la creșterea competitivității acestora. Dar utilizarea de biblioteci suplimentare abstractizare duce la o creștere bruscă a dimensiunii programelor compilate, datorită faptului că bibliotecile de cod incluse în program, în afară de această includere este de multe ori ineficient, deoarece programul include porțiunile neutilizate ale codului. În plus, este mai mare nivelul de abstracție al bibliotecii, cu atât mai complexă codul și mai mare dificultate apare în rezolvarea problemelor complexe. Trebuie să luăm în considerare numeroasele interdependențele și influențele reciproce ale elementelor individuale și a proceselor de la fiecare alte biblioteci. Mai mult, structura și funcția oricărei biblioteci este de obicei calculată pentru a acoperi toate provocările potențial emergente, ceea ce conduce la greoaie și ineficiente sale.
Delphi folosește un foarte puternic și complex de bibliotecă VCL (Visual Components Library), care, în plus față de directe abstracțiuni și, de asemenea, introduce mai multe dintre clasele lor funcționale. Această bibliotecă are componentele pentru afișarea vizuală a informațiilor, lucrul cu baze de date, cu componentele obiect de sistem pentru a lucra cu Internet-protocoale, cursuri pentru scrierea dvs. COM-obiecte și multe altele. Modulele de bibliotecă sunt conectate pentru a compila după cum este necesar, dar dimensiunea de bază dialogul simplu proiect cu o singură formă depășește 300KB (static legat cu biblioteca). Și o astfel de dimensiune, în multe cazuri, poate fi prea mare, mai ales în cazul în care programul nu are nevoie de mult funcționalitate în interfața.
Luați în considerare avantajele și dezavantajele de programare vizuale și programare fără a utiliza componente grafice, care este utilizați funcțiile Win32 API direct pentru a crea ferestre, grafică, etc.
Pro-uri de programare vizuală:
1. programe de rapidă a scrie (sub forma destul distribui cheile și scrie procedurile lor).
2. Ușor de utilizat (este mai ușor de utilizat decât pentru a descrie fiecare pas la nivelul inferior, nu trebuie să vă faceți griji cu privire la memorie).
Contra programare vizuală:
1. Dimensiunea uriașă a cererii - „gol“ aplicație de pe Delphi „cantareste“ primerno300 kb.
2. Din cauza numărului mare de add-in viteza trebuie ignorate, mai ales în ceea ce privește grafica pe pânză.
Avantajele de programare de nivel scăzut în Win32 API:
1. Dimensiunea mică a fișierelor finale (între 30 kb și 300 kb este o mare diferență);
2. Performanța la un nivel ridicat (doar a obține mai rapid atunci când scrieți în întregime în limbaj de asamblare).
Dezavantaje de programare de nivel scăzut în Win32 API:
1. Nu există nici o vizualizare (greu de imaginat că crea care distrug ceea ce sa scrie).
2. Pentru a crea o fereastră normală va necesita aproximativ 50 de linii de cod (a crea și înregistra cererea în sine, de a crea o fereastră, să aibă grijă de toți parametrii).
3. Este important să ne amintim pentru a monitoriza utilizarea memoriei - eliberarea, luând.