Title: Programme
1Programmešanas valodas vesture, izstrades
principi
2Programmešanas valodas ieskats vesture
- Programmešanas valodas orientejoši vesturiskie
periodi - Priekšvesture (agrina vesture) pirms 1950.g
Ada Lavleisa (1830), datoru veidošanas posms
(no 1930.g) - Pirmas augsta limena programmešanas valodas
(1950-tie gadi), FORTRAN, COBOL, ALGOL, LISP - 1960-tie gadi programmešanas valodu eksplozija
- 1970-tie gadi vienkaršiba, abstrakcija,
petnieciba - 1980-tie gadi Objektorientacijas eras aizsakums,
citi jauni virzieni - 1990-tie gadi nedaudzas jaunas plaša profila
valodas, cina par ietekmi Internets, valodu
biblioteku attistiba - Tagadne un nakotne - ?
- Iespejams tikai ieskats, jo programmešanas valodu
klasts arkartigi plašs un bagatigs.
3Programmešanas valodas Agrina vesture
- 1830 Carlza Bebidža (Charles Babbage)
analitiska mašina programmas sastaveja no
kartinam, uz kuram kodeti dati un operacijas-
Mašina fiziski netika pabeigta, bet ir
parlieciba, ka, ja ta butu pabeigta, tad ta butu
stradajusi.- Ada Lavleisa (Lovelace)
rakstijusi programmas Analitiskajai mašinai,
pasaule pirma programmetaja - 1936 Tjuringa mašinas (galigs automats,
bezgaliga lenta) - Cerca teze visi algoritmi
realizejami ar TM, - iespejams pieradit teoremas
par algoritmu neiespejamibu- Universala Tjuringa
mašina ideja par programmas koda glabašanu
datora (mašinas) atmina - 1936 ?-rekini (x, ?x.M, M N, redukcija)
Tjuringa mašinu analogs funkcionala stila - 1948 von Neumann mašina, mašinu kodi ar absoluto
adresaciju, reali uzbuveta mašina, iespejams
programmetSakas reala programmešanas valodu
vesture. - 1949 Kodešanas valodas Short Code, Speedcoding,
UNIVAC A-0, A-1, A-2
4Pirmas augsta limena PV (1950-tie gadi)
- 1956 FORTRAN revolucija augsta limena
programmešanas valodu attistiba, orienteta uz
konkretu datoru IBM 704 - simboliski vardi mainigajiem (mainiga varda
pirmais burts nosaka mainiga tipu). - zarošanas operators IF a-exp N1, N2, N3
- cikla operators DO N1, xn1,n2
- FORTRAN II (1958) - neatkariga kompilacija,
noverstas kludas - FORTRAN talaka attistiba FORTRAN 77 - simbolu
virknes, IF-THEN-ELSE FORTRAN 90 - f-jas
masiviem, pointeri, dinamiska atmina, rekursija,
- ALGOL 58 datu tipi, deklaracijas, gari mainigo
vardi, , ieklautie IF, FOR - ALGOL 60 begin-end ar lokalajiem mainigajiem,
rekursija, dinamiskie masiviTeoretiska valoda,
pamats ALGOL 68, BASIC, PL/I, C, PASCAL, ADA, C - 1960 COBOL, Computerizing Business Records ADD
X Y GIVING Z - 1960 LISP, AI aplikacijas, programma un dati -
viss ir saraksts, iekavu izteiksme (A (B C) D
(E (F G))) velak SCHEME, COMMON LISP
5Programmešanas valodas 1960-tie gadi
- Daudzas valodas konkretiem merkiem
- Universalitates ideja PL/I (1965) domata
jaunajiem IBM 360 sistemas datoriem, iecere
piedavat visu labako no FORTRAN, COBOL, ALGOL,
plus paralelisma konstrukcijas un iznemuma
situaciju apstradi, projekts neveiksmigs
kompilatorus gruti uzrakstit, tie leni, valodu
gruti lietot - ALGOL 68 valoda ar attistitu un konceptuali
pilnigu strukturu, tipu sistemu, u.c. Diemžel
ari nelietojama lietota jauna, citiem
nesaprotama, terminologija, lai šis valodas
dizainu aprakstitu. - SNOBOL virknu apstrades valoda, specigi šablonu
atbilstibas lidzekli (SNOBOL4) - SIMULA - 67 K.Nygaard, O.-J. Dahl, ieklauj ALGOL
60, bagatina to ar klases ideju (sapakoti dati
operacijas). Izstradata ar merki aprakstit
simulacijas uzdevumus. Pirma objektorienteta
programmešanas valoda 1967.g. - BASIC (1964) iesacejiem draudziga. Radita ka
vienkarša valoda ta laika uzdevumu risinašanai,
pec tam adapteta personalajos datoros, plaši
izmantota izglitiba (skolas). BASIC valodu
saime ANSI BASIC minimalais BASIC. QuickBASIC
(1989), Visual BASIC(1991), u.c.
6Programmešanas valodas 1970-tie gadi
- PASCAL (1971) neliela, vienkarša, efektiva
struktureta valoda, balstita uz ALGOL 60.
value-result parametri, CASE, lietotaja datu
tipi, RECORD. Nav mainiga garuma masivi ka
parametri, atseviška kompilacijaDialekti
TurboPASCAL. 90-jos gados popularitate samazinas - C (1972) videji augsta limena valoda (augsta
limena vadibas konstrukcijas plus pieeja datu
reprezentacijai), viegli uztveramas
konstrukcijas, UNIX sistemas valoda. Atvieglota
tipu kontrole. C popularitati veicinaja UNIX
sistemas liela popularitate. - PASCAL un C neievieš daudz jaunus programmešanas
valodu jedzienus. To veiksme vienkaršiba,
konsistence, ertums lietošana. - CLU klasteru (cluster) mehanisms abstrakto
datu tipu uzdošanai. - PROLOG Logiska programmešana. Rezoluciju metode
1965.g, interpretators 1974, AI, dažas datu bazu
sistemas, idejas loti interesantas, kopuma tomer
samera ierobežoti lietojumi.
7Programmešanas valodas 1980-tie gadi (1)
- Valodas ar abstrakto datu tipu mehanismiem ADA,
MODULA-2. - ADA ASV Aizsardzibas Departamenta pasutijums
(ADA-83, velak ADA-95).- abstrakto datu tipu
mehanisms (pakotnes)- paralelas izpildes
apraksta mehanisms (task-i)- loti rupigs
dizains, bet ASV Aizsardzibas Departamenta velme
paturet kontroli par to, ka ari valodas apjoms un
sarežgitiba lieguši tai loti plašu izplatibu - MODULA-2 balstita uz PASCAL, ietver modulu
mehanismu. Vienkarša valoda, bet ierobežots ADT
atbalsts, nav iznemuma situaciju mehanismu
popularitate samazinajusies. - Objekt-orienteta programmešana Smalltalk, C.
- Smalltalk tira objektorienteta valoda, veidota
kopa ar pilnigu datora lietotaja saskarni
specializeta uz noteiktam operaciju sistemam. - C Veidota, lai nopietnam programmetajam
programmešanas darbs butu baudamaks, sakuma C
paplašinašana ar klases ideju no Simula-67. Plaša
valoda, gruti implementejama, gruti saprotama
visa pilniba. Daudz biblioteku. ISO standarts
1998.gada. - Citas objektorientetas valodas Objective C,
Object Pascal, Modula-3, Oberon, Eiffel.
8Programmešanas valodas 1980-tie gadi (2)
- 1980.gadi ari funkcionalas programmešanas
attistiba - SCHEME (valodas LISP variants), ML paradijušas
jau 1970.-to gadu beigas. - SCHEME popularitati iegust ar gramatas
publikaciju 1985.gada. SCHEME LISP variants,
kas tuvaks ? - rekiniem. - ML sintakse daudz tuvaka PASCAL valodai, neka
citam funkcionalam valodam nopietna tipu
sistema, daudz specigaka, neka PASCAL (ne tikai
tipu parbaudes, bet ari tipu konstruešanas
sistema) - Cita funkcionala valoda MIRANDA 1985-86.g.
- Logiska programmešana
- Pakapeniski paradas efektivas valodas PROLOG
implementacijas. - 1980.gadu vidu PROLOG tika izvelets ka galvena
valoda piektas paaudzes sistemam Japana. Pec ši
projekta beigam interese par valodu mazinajusies. - Interesanti paplašinajumi PROLOG IV, PARLOG.
9Programmešanas valodas 1990-tie gadi (1)
- Attistibas faktori PC attistiba, Internet
timekla pieejamiba (Mosaic parlukprogramma
1993.gada). Milziga tirgus atveršanas. - C popularaka objektorienteta valoda 90.gadu
sakuma. - 1995.gads valoda JAVA. Sun Microsystems veica
plašu kampanu valodas JAVA reklamai. JAVA
relativi vienkarša, viegli parnesama (portejama),
plaša biblioteku sistema logu parvaldibai,
darbibai tikla un paralelai programmu izpildei. - JAVA lietojumi auguši loti strauji. Nakotne
paliek jautajumi - JAVA aplikacijas, kas izpildamas uz viena datora,
ir butiski lenakas, neka tas, kas veidotas ar C - SUN Microsystems pastav uz savam ipašuma tiesibam
uz JAVA, maz ticams, ka nakotne varetu paradities
neatkarigi ISO vai ANSI standarti - Tomer škiet, ka JAVA nakotne tikla aplikacijas
un izglitiba jau ir nodrošinata. - Citas valodas
10Programmešanas valodas 1990-tie gadi (2)
- C un JAVA nav divas vienigas programmešanas
valodas 1990-tajos gados. - HASKELL tiri funkcionala valoda, lidziga ML un
MIRANDA, ar jaunam ipašibam (aizturetas izpildes
paradigma, monades ka I/O mehanisms, u.c.), labu
realizaciju un augošam biblioteku iespejam. - Vienkaršakas lidzigas valodas GOFER un HUGS tiek
plaši lietotas izglitiba un mazakam aplikacijam. - ADA 95 ADA 83 papildinajums, ieklaujot papildus
iespejas, t.sk. jaunas iespejas objektorientetai
programmešanai un paralelai programmu izpildei.
ADA 95 izstrade ir nemta vera ADA 83 lietošanas
pieredze, ka ari notikusi OOP revolucija. - Biblioteku attistiba programmešanas valodas.
Vesturiski bibliotekam pakartota nozime (PASCAL
vispar nebija biblioteku). Musdienas
nepieciešama plaša biblioteku sistema, kas
neatkariga no platformas, labi integreta valoda.
JAVA panakumiem butiska JAVA API (Application
Program Interface), kas butiba ir biblioteku
sistema. HASKELL, ADA95 labas biblioteku
sistemas. - Skriptešanas valodu attistiba AWK, Perl,
JavaScript, Rexx, Python, u.c.
11Programmešanas valodas nakotne?
- 1960.gadu programmetaju sapnis universala
programmešanas valoda visiem dzives gadijumiem.
Meginajums to uzbuvet PL/1, cieta neveiksmi. - Sapnis 1970./80. gados izveidot specifikaciju
valodu, aprakstit taja velamo rezultatu, lai
sistema pati atrod veidu, ka izveidot
implementaciju un sasniegt risinajumu. - Programmešanas automatizacijas (t.sk. automatiska
koda generešanas) joma ir sasniegumi, bet tie ir
loti tali no ta, lai programmešanu padaritu
nevajadzigu. - Programmešanas nepieciešamiba musdienas loti
plaša, no asemblera valodas, lidz pat
specifikaciju valodam. - Ari attistoties datoriem, prasibas uz programmam
arvien pieaug, t.sk. vajadzigs nodrošinat koda
portešanas un atkartotas lietošanas iespejas,
vajadzigas sistemas, kas uzlabo programmetaja
darba produktivitati. - Tehnologijas attistas, un programmešanas valodam
jaattistas lidzi.
12PV izstrades principi ievads
- Pamata prasibas (1) iespeja (efektivi)
izpildit uz datora un (2) lasamiba cilvekam - ir sava starpa konfliktejošas.
- Musdienu programmešanas valodu izstrade akcente
lasamibu cilvekam, piemerotu (ertu) abstrakciju
sistemu, veidus, ka parvaldit sarežgitibu. - Laba vai ne tik laba valoda to nosaka ne tikai
valoda pati. Loti dažadi faktoriC ieguva
popularitati UNIX sistemas delCOBOL tiek
uzturets tadel, ka taja uzrakstits daudz kodaADA
ieguva ietekmi caur ASV Aizsardzibas
DepartamentuJAVA ieguva popularitati Internet
straujas izplatibas iespaida. - Dažadam PV dažadas pašu valodu ipašibas, kas
nosaka (noteica) to popularitatiFORTRAN
efektivitateCOBOL programmu teksti anglu
valodai lidziga valodaALGOL valoda ar bloku
strukturuPASCAL vienkarša valodaC lielaka
abstrakcijas iespeja, saglabajot C efektivitati
un savietojamibu ar C. - Svarigi sekot izveletajai dizaina filozofijai.
- Programmešanas valodas dizains ari maksla,
tapat, ka jebkurš cits dizains.
13PV izstrades principi vesturiska skatijuma (1)
- Programmešanas valodu attistibas sakuma
galvenais kriterijs programmu izpildes
efektivitate(Datori bija loti leni, tadel
programmu atrdarbiba bija nepieciešamiba bez
tam pastaveja ari izplatits uzskats, ka valodu
translatori nespej radit efektivu kodu). - FORTRAN tieši šads pirmais merkis izpildes
efektivitate. FORTRAN koda daudz lidzibas ar
mašinas kodu, kuru nepieciešams generet. - Otrs merkis (merkis jebkurai augsta limena
programmešanas valodai) iespeja erti (skaidri,
precizi, isi) uzrakstit programmas, sakuma bija
pakartots. - Nepieciešamiba programmas ari lasit cilvekam
maz tika nemta vera. - COBOL, ALGOL 60 jau plašaki kriteriji, neka
tikai efektivitate. ALGOL 60 bloku struktura
atvieglo programmu rakstišanas uzdevumu. - Bez tam ALGOL 60 nem vera programmu lasamibu
saprotot, ka programmešanas valoda ir ari
lidzeklis komunikacijai starp cilvekiem. - COBOL meginaja uzlabot lasamibu, veidojot
programmas tekstu lidzigu anglu valodas tekstam
(šaja zina gan COBOL nevar uzskatit 100 par
veiksmi). - 1960-tie gadi talaka izpratne par prasibam uz
programmešanas valodam
14PV izstrades principi vesturiska skatijuma (2)
- 1960.-tie gadi
- 1) Nepieciešamiba piedavat specigakus
abstrakcijas mehanismus - 2) Nepieciešamiba samazinat likumu un
ierobežojumu apjomu, kas programmetajam
jaiemacas. - Abi šie principi izriet no nepieciešamibas
atvieglot programmešanas darbu. - SIMULA 67 klases mehanisms
- ALGOL 68 konstrukciju ortogonalitate
iespejami maz ierobežojumu, kas rodas no dažadu
valodas konstrukciju kompozicijas (mazak
veiksmiga valoda). Problema valodas
visparigums parak sarežgits, gruti apgustamas
konstrukcijas. - 1970-tie un 1980-tie gadi vienkaršibas un
abstrakcijas princips PASCAL, C, EUCLID, CLU,
MODULA-2, ADA.
15PV izstrades principi vesturiska skatijuma (3)
- Meginajumi ari uzlabot programmu drošibu,
ieviešot matematiskas definicijas valodu
konstrukcijam un piedavajot valoda mehanismus,
kas kompilatoram atlautu kompilacijas laika
pieradit programmas pareizibu. - Diemžel pieradijuma sistemam ierobežota veiksme
galvenokart tas sarežgitibas del, kas ar to
saistita. - Stingra tipu sistema šodien kluvusi par
standartu daudzas programmešanas valodas. - Valodu matematiskas precizitates paaugstinašana
funkcionalas programmešanas attistiba, valodas
ML, HASKELL. - Objektorientetas valodas izstrades merkis (1)
abstrakcijas mehanisms, kas atbilst praktiskiem
programmešanas uzdevumiem, (2) biblioteku
izmantošana valodu izteiksmes spejas
paplašinašanai, (3) objektorientetas metodes
koda elastibas un atkartotas izmantošanas
nodrošinašanai. - OO valodas visveiksmigakas pedejos 15 gados.
16PV izstrades principi efektivitate
- Programmešanas valodas efektivitate dažadi
efektivitates veidi, nozime pavisam dažadas
lietas - A. Efektivs izpildamais kods (saukts ari par
optimizejamibu)Piemeri mainigie, kuru tipi
nosakami pirms izpildes C klases konstrukcija,
neprasa vairak resursus, ka C struct - B. Translacijas efektivitatePiemeram, vai
valodai var uzrakstit translatoru, kas tekstu
caurskata tikai vienreiz (C un PASCAL tas ir
iespejams, jo visi mainigie jadeklare pirms
lietošanas, C ši prasiba ir atcelta)Vai valoda
nav prasibu, kuras ir kompilacijas laika loti
gruti parbaudit? - C. Vai valodai viegli uzrakstit kompilatoru? Cik
vienkarša ir pati valodas definicija? - D. Cik efektivs ir programmu izstrades process
šaja valoda. Efektivitate šaja nozime klust
sinonims izteiksmes spejai.Efektiva kodešana
vieglak kodet, ja mainigos nav jadeklare. Tomer
šada situacija cieš citas butiskas prasibas uz
valodas dizainu. - E. Vel viens efektivitates veids programmešanas
valodas drošiba (uzticamiba). Ja valoda nav
droša, tad var but jatere daudz lidzekli, lai
cinitos ar kludam programmas. Nav efektivitates
no programmbuves izmaksu viedokla.
17PV izstrades principi Regularitate (1)
- Regularitate cik labi dažadas valodas ipašibas
ir integretas. - Bieži regularitates prasibas grupe konkretakas
prasibu kopas (1) visparigums, (2)
ortogonalitate, (3) uniformitate. - Visparigums
- Valoda ir vispariga, ja ta izvairas no specialiem
gadijumiem konstrukciju pieejamibai - Piemeri (vispariguma nav/visparigums ir)
- PASCAL ir ieklautas funkcijas un proceduras, tas
var tikt nodotas ka parametri citam proceduram,
bet PASCAL-a nav proceduru tipa mainigo - C nav iespejams definet ieklautas proceduras vai
funkcijas (C toties pielauj proceduras ka
parametrus, ka mainigos vai rezultejošas
vertibas pointeri uz funkcijam). - PASCAL-a nav mainiga garuma masivu. C un ADA ir
mainiga garuma masivi. FORTRAN ir iespejas nodot
mainiga garuma masivus ka parametrus, bet nav
iespejas definet datu tipu, kas atbilst mainiga
garuma masivam. - C divas strukturas vai masivus nevar salidzinat,
izmatojot vienadibu . C šis ierobežojums ir
noversts. - Daudzam valodam nav iespeju paplašinat iebuveto
operatoru (piemeram vai ) darbibu uz
jauniem, lietotaja definetiem datu tipiem. Ir
valodas (piemeram, Haskell), kuras lietotajs var
pat definet jaunus operatorus.
18PV izstrades principi Regularitate (2)
- Ortogonalitate
- Valodas konstrukcijas nedrikst uzvesties
atškirigi dažados kontekstos - Masivus nevar salidzinat ar vienadibu (C) to
var uzskatit ari par ortogonalitates problemu - PASCAL funkcijas rezultats var but tikai skalars
tips - C, C funkcijas rezultats var but ar jebkuru
tipu, iznemot masivu (masivi valodas C, C ir
ipaša statusa) ADA, funkcionalas valodas šis
problemas ir pamata noverstas - Parametru nodošana valoda C visi mainigie tiek
nodoti apakšprogrammam pec vertibas, iznemot
masivus, kas tiek nodoti pec adreses - Uniformitate
- Valodas konstrukciju izskata koherence no
lidziga izskata konstrukcijam tiek sagaidita
lidziga uzvediba. - C semikolam jabut pec klases definicijas, bet
semikols nedrikst but pec funkcijas definicijas. - Vertibu atgriešana funkcijas valoda PASCAL
atgadina pieškiršanu f TRUE.
19Neregularitates iemesli
- Iemesli bieži vien vesturiski un citu dizaina
apsverumu dikteti. - Semikola problema C velešanas atškirties no C
tik maz, cik iespejams - Ierobežojumi uz funkcijam C un PASCAL
vienkaršibas un implementacijas jautajums. - Regularitate ka merkis pats par sevi, pari visiem
citiem merkiem ari var but bistams (piemers
ALGOL 68 regularitate perfekti sasniegta, bet
valoda nav lietojama). - Ari lasamibas un drošibas prasibas var tikt
kompromitetas, ja uz dažam valodas konstrukcijam
netiek uzlikti ierobežojumi. Piemers pointeri
valoda C. - JAVA pointeri netiek piedavati, bet lidz ar to
programmu izpildes vides kluvusi komplicetaka,
mainigo vertibu maina var notikt nepatikamos
veidos.
20Talaki PV izstrades principi
- Vienkaršiba PASCAL, C, u.c.
- LISP, PROLOG tikai dažas valodas konstrukcijas,
bet valodas nav vienkaršas - BASIC škietami vienkarša valoda, bet dažu
konstrukciju trukums (deklaracijas, bloki) padara
to gruti lietojami lielakos projektos - PASCAL parak vienkaršs nav labas simbolu virknu
apstrades, atseviškas kompilacijas, labu i/o
mehanismu - C labaks, bet vaja darbiba ar simbolu virknem,
neskaidra tipu un operatoru sintakse, neparasta
masivu apstrade, vaja tipu parbaude - Izteiksmes speja
- Vieglums, ar kadu valoda var izteikt sarežgitus
procesus un strukturas. - Izteiksmes speja konflikte ar vienkaršibu (LISP,
PROLOG, u.c.) - Objekt-orienteta programmešana butiski uzlabo
programmetaja speju rakstit kodu, kas atbilst
vina dizainam. - Izteiksmes speja laba nozime uzlabo lasamibu.
- Izteiksmes speja var but ari konflikta ar
lasamibu while (s t) programma, kas
kope vienu simbolu virkni uz otru.
21Talaki PV izstrades principi (2)
- Paplašinamiba
- Iespeja lietotajam pievienot jaunas ipašibas
valodai - Tipiska situacija neliels kodols iespeja
lietotajam definet paplašinajumus - Daudzas valodas atlauj definet jaunus datu tipus,
jaunas bibliotekas funkcijas - Imperativas valodas (ADA, u.c.) atlauj definet
jaunus tipus un paplašinat uz tiem iebuvetos
operatorus - ML, HASKELL iespeja lietotajam definet ari
pašam savus operatorus. - Vienkaršiba bez paplašinamibas (vismaz biblioteku
pievienošana, sadarbiba ar citu valodu
programmam) valoda musdienas nevar but veiksmiga - Ierobežojamiba
- Iespeja definet un izmantot valodas apakškopas.
- Apakškopas vieglak izmantojamas, var but
iespejas veidot efektivakas programmas. - Saskanotiba ar visparpienemtam notacijam
- Svarigi izmantot jedzienus, kas ir de facto
standarti. - Piemers if-then-else terminologija.
- ALGOL 68 varda type vieta lietoja mode
- FORTRAN DO 99 I 1.10 - ko dara ši
programma? - Pieškir vertibu 1.1 mainigajam DO99I.
22Talaki PV izstrades principi (3)
- Precizitate
- Vajadziga preciza valodas definicija. Garants ne
tikai programmu drošibai un uzticamibai, bet ari
valodas translatoru drošibai un uzticamibai. - Valodas definicija valodas izstradataja veidota
rokasgramatavisparatzits standarts (ISO, ANSI),
pastav valodam LISP, FORTRAN, ADA, PASCAL, COBOL,
C, C - Neatkariba no konkreta datora
- Veidot iebuvetos datu tipus, kas nav atkarigi no
reprezentacijas uz konkreta datora. Reali
fizikali ierobežojumi pastav. C standarta
bibliotekas limits.h un float.h satur lokalizetas
no datora reprezentacijas atkarigas definicijas. - ADA katram skaitliskam tipam tiek programma
uzradita ari precizitate. - Drošiba
- Veicina programmu izstrades veidu, kura kludas
maz iespejamas, atlauj kludu identifikaciju
iespejami agri. - Statiskas (pirms izpildes) tipu kontroles,
mainigo deklaracijas prasiba. - Drošibas princips konflikte ar vienkaršibu un
izteiksmes speju. Ka risinat? - Funkcionalas valodas, ML un HASKELL atlauj
nedeklaret mainigos, bet spej veikt statisku tipu
parbaudi.
23Prasibas programmešanas valodai cits skatijums
- Lasit, rakstit, izpildit, modificet, analizet,
izmantot programmas - Bieži nosauktas vienkarša, viennozimiga,
robusta, dabiska lietošana, laba izteiksmes
speja, precizi defineta, piedava datu tipus,
lietotaja datu strukturas, modulara,
paplašinama, labs ievads un izvads, parnesamiba,
efektivitate (izstrade, izpilde), kompakta,
viegli apgustama, piemerota dažadam problemam,
dokumenteta, laba izstrades vide, struktureta,
objekt-orienteta, specialas bibliotekas, u.c. - Abstrakcija (iespeja apvienot lidzigas darbibas
viena) - Automatizacija (vienmulam darbibam, kuras viegli
kludities) - Strukturizacijas limeni
- Informacijas paslepšana
- Iezimes, kas atlauj informaciju pierakstit dažada
seciba - Ortogonalitate (neatkarigas funkcijas realizetas
neatkarigi) - Regularitate (neliels daudzums likumu)
- Drošiba (ja programma neatbilst valodai, tas tiek
konstatets) - Konsistence (lidzigas lietas attelotas lidziga
veida) - Visu vai neko (iespeja realizeta pilniba, vai tas
nav vispar) cf. R.Cezzar, 20-22