
Python programmalastırıw tilin úyreniw 2-BÓLIM
.pdf2-BAP
Python baǵdarlamalardı qalay orınlaydı
Bul bap hám keyingisi baǵdarlama orınlanıwına tez itibar beredi - kodtı qanday iske túsiresiz hám Python onı qalay ámelge asıradı. Bul bapta biz Python interpretatorın úyrenemiz. 3-bapta bolsa sizge óz baǵdarlamalarıńızdı qalay iske túsiriw hám ámelge asırıw kórsetiledi.
Iske túsiriw detalları tábiyiy túrde platformaǵa baylanıslı, hám bul eki baptaǵı ayırım materiallar siz isleytuǵın platformaǵa qollanılmawı múmkin, sonlıqtan siz óz maqsetińizge tiyisli bolmaǵan bólimlerdi ótkizip jiberiwińizge boladı. Sondayaq, aldın uqsaǵan qurallardan paydalanǵan hám tildiń negizine tezirek jetiwdi qáleytuǵın tájiriybeli oqıwshılar bul baptıń bir bólegin "keleshekte paydalanıw ushın" saqlaw kerek bolıwı múmkin. Qalǵanlarıńız ushın, qáne, kodtı qalay iske túsiriwdi úyrenemiz.
Python interpretatorın tanıstırıw
Usı waqıtqa shekem, men kóbinese Python haqqında programmalastırıw tili sıpatında sóylep keldim. Biraq, házirgi ámelge asırılıwında, ol sonday-aq interpretator dep atalatuǵın programmalıq támiyinlew bolıp tabıladı. Interpretator - basqa programmalardı orınlaytuǵın programma túri. Siz Python programmasın jazǵanıńızda, Python interpretatorı siziń programmańızdı oqıydı hám ondaǵı kórsetpelerdi orınlaydı. Shınında da, interpretator - siziń kodıńız benen kompyuterińizdiń apparat quralları arasındaǵı programmalıq logika qatlamı bolıp tabıladı.
Python paketi kompyuterińizge ornatılǵanda, ol bir qansha komponentlerdi payda etedi - eń keminde, interpretator hám járdem kitapxanası. Onı qanday qollanıwıńızǵa baylanıslı, Python interpretatorı orınlanatuǵın programma túrinde yamasa basqa programmaǵa baylanısqan kitapxanalar toplamı túrinde bolıwı múmkin. Qaysı Python túrin qollanıwıńızǵa baylanıslı, interpretatordıń ózi C programması, Java klasları toplamı yamasa basqa nárse sıpatında ámelge asırılıwı múmkin. Qanday túrde bolsa da, siziń jazǵan Python kodıńız bárqulla usı interpretator arqalı ámelge asırılıwı kerek. Hám bunı múmkin etiw ushın, siz kompyuterińizge Python interpretatorın ornatıwıńız kerek.
Python ornatıw detalları platformaǵa qarap ózgeredi hám A qosımshada tereńirek qamtıp ótilgen. Qısqasha aytqanda:
•Windows paydalanıwshıları óz-ózin ornatıwshı orınlanatuǵın fayllardı júklep alıp iske túsiredi, bul olardıń kompyuterlerine Pythondı ornatadı. Tek eki ret basıp, barlıq sorawlarǵa "Awa" yamasa "Keyingi" dep juwap beriń.
•Linux hám Mac OS X paydalanıwshılarında ádette olardıń kompyuterlerinde qollanıwǵa jaramlı Python aldın ala ornatılǵan boladı - bul búgingi kúnde bul platformalarda standart komponent bolıp esaplanadı.
•Ayırım Linux hám Mac OS X paydalanıwshıları (hám kópshilik Unix paydalanıwshıları) Pythondı onıń tolıq derek kodı distribuciya paketinen kompilyaciya qıladı.
•Linux paydalanıwshıları sonday-aq RPM faylların taba aladı, al Mac OS X paydalanıwshıları Macke arnalǵan hár qıylı ornatıw paketlerin taba aladı.
•Basqa platformalarda sol platformalarǵa tiyisli ornatıw usılları bar. Mısalı, Python uyalı telefonlarda, oyın pristavkalarında hám iPodlarda da bar, biraq ornatıw usılları júdá hár qıylı boladı.
Pythonnıń ózin http://www.python.org saytınıń júklep alıw betinen alıwǵa boladı. Sonday-aq onı basqa da hár qıylı tarqatıw kanalları arqalı tabıwǵa boladı. Esińizde bolsın, Pythondı ornatıwdan aldın onıń aldınnan bar-joqlıǵın tekseriw kerek. Eger siz Windows-ta jumıs islep atırǵan bolsańız, Pythondı ádette 2-1-súwrette kórsetilgendey "Start" menyusınan tabasız (bul menyu opciyaları keyingi bapta talqılanadı). Unix hám Linux-ta Python kóbinese siziń /usr katalog aǵashıńızda jaylasqan boladı. Ornatıw usılları platformaǵa baylanıslı bolǵanlıqtan, bul jerde qalǵan máselelerdi qısqasha túsindirip ótemiz. Ornatıw procesi haqqında tolıǵıraq maǵlıwmat alıw ushın A qosımshasın qarań. Usı hám keyingi bap ushın men sizde Python jumısqa tayın dep esaplayman.
Programmanı orınlaw
Python skriptin jazıw hám iske túsiriw ne ańlatqanı, siz bul wazıypalardı programist sıpatında kórip shıǵasız ba yamasa Python interpretatorı sıpatında kórip shıǵasız ba, soǵan baylanıslı. Eki kóz-qarasta Python programmalastırıwda áhmiyetli perspektivalar beredi.
Programisttiń kóz-qarası

Eń ápiwayı túrde, Python programması - bul tek Python operatorların óz ishinde saqlaytuǵın tekst faylı. Mısalı, tómendegi script0.py dep atalatuǵın fayl - men oylap taba alatuǵın eń ápiwayı Python skriptleriniń biri, biraq ol tolıq isleytuǵın Python programması bolıp esaplanadı:
print('hello world') print(2 ** 100)
Bul fayl eki Python print operatorın óz ishine aladı, olar tek qatardı (tırnaqsha ishindegi tekst) hám sanlı ańlatpa nátiyjesin (2 niń 100-dárejesin) shıǵıs aǵımına shıǵaradı.
Házirshe bul kodtıń sintaksisi haqqında qayǵırmań - bul bapta bizdi tek onı iske túsiriw qızıqtıradı. Men print operatorın hám nege siz Pythonda 2 ni 100-dárejege kótere alasız hám bunda asıp ketiwshilik bolmaydı, bulardı kitaptıń keyingi bólimlerinde túsindiremen.
2-1 súwret. Windows ta ornatılǵanda, Python Baslawı túymesiniń menyusında usılay kórinedi. Bul versiyadan versiyaǵa azǵana ózgeriwi múmkin, biraq IDLE rawajlandırıw grafikalıq interfeysin baslaydı, al Python ápiwayı interaktiv sessiya
baslaydı. Sonday-aq, bul jerde standart qollanba kitapları hám PyDoc hújjet dvigateli (Modul Hújjetleri) bar.
Siz usınday operatorlar faylın qálegen tekst redaktorı menen dúze alasız. Kóplikke kóre, Python programma fayllarına .py menen tamamlanatuǵın atlar beriledi; texnikalıq jaqtan, bul ataw sxeması tek "import" etiletuǵın fayllar ushın talap etiledi, bul haqqında kitaptıń keyingi bólimlerinde aytıladı, biraq kópshilik Python faylları birdeylik ushın .py atlarına iye.
Usı operatorlardı tekst faylına jazıp bolǵanıńızdan soń, siz Pythonǵa faydı orınlawdı buyırıwıńız kerek - bul ápiwayı túrde fayldaǵı barlıq operatorlardı joqarıdan tómenge qaray, bir-biriniń izinen orınlaw degendi ańlatadı. Keyingi bapta kóriwińiz boyınsha, siz Python programma faylların komanda qatarı arqalı, olardıń belgilerin basıw arqalı, IDE ler ishinde hám basqa da standart usıllar menen iske túsire alasız.
Eger hámmesi jaqsı bolsa, faydı orınlaǵanıńızda, eki print operatorınıń nátiyjelerin kompyuterińizdiń qandayda bir jerinen kóresiz - ádette, programmanı iske túsirgen waqtıńızda turǵan aynada kórinedi:
hello world 1267650600228229401496703205376
Mısalı, mınanı Windows noutbukta DOS komanda qatarınan (ádette Accessories programma menyusında tabılatuǵın Command Prompt aynası dep ataladı) usı skriptti iske túsirgenimde, onıń hesh qanday aqmaq qáteliklerge iye emes ekenin tekseriw ushın ne bolǵanın kórsetedi:
C:\temp> python script0.py hello world
1267650600228229401496703205376
Biz házir bir qatardı hám bir sandı basıp shıǵaratuǵın Python skriptin iske túsirdik. Bul kod penen programmalastırıw sıylıqların utıp ala almaymız, biraq ol programmanı orınlawdıń tiykarǵı túsiniklerin túsiniw ushın jetkilikli.
Pythonnıń kóz-qarası
Aldıńǵı bólimde berilgen qısqa túsindirme skript tillerine tán hám kópshilik Python baǵdarlamashıları ushın jetkilikli. Siz kodtı tekst fayllarına jazasız hám sol fayllardı interpretator arqalı iske túsiresiz. Biraq, ishki mexanizmde, Pythonǵa
"iske túsir" dep buyırǵanıńızda biraz kóbirek nárse júz beredi. Python programmalastırıw ushın onıń ishki isleytuǵın tártibiniń bilimi qatań talap etilmese de, Pythonnıń orınlanıw strukturasın tiykarǵı túsiniw programmanıń orınlanıwınıń úlken kórinisiniń túsiniwge járdem beredi.
Pythonǵa skriptińizdi iske túsiriwdi buyırǵanıńızda, siziń kodıńız haqıyqatında islewdi baslamastan aldın Python bir neshe qádemlerdi orınlaydı. Atap aytqanda, ol dáslep "bayt kod" dep atalatuǵın nársege kompilyaciya etiledi, soń "virtual mashina" dep atalatuǵın nársege jiberiledi.
Bayt kod kompilyaciyası
Ishki tárepte hám sizden derlik tolıq jasırın halda, programmanı orınlaǵanıńızda Python dáslep siziń derek kodıńızdı (faylıńızdaǵı operatorlardı) bayt kod dep atalatuǵın formatqa kompilyaciya etedi. Kompilyaciya - bul tek awdarıw basqıshı, al bayt kod - siziń derek kodıńızdıń tómengi dárejeli, platformaǵa ǵárezsiz kórinisi. Shama menen, Python siziń hár bir derek kodı operatorın olardı jeke qádemlerge bólip, bayt kod kórsetpeleriniń toparına awdaradı. Bul bayt kodqa awdarıw orınlanıwdı tezletiwge arnalǵan - bayt kodtı siziń tekst faylıńızdaǵı dáslepki derek kodı operatorlarına qaraǵanda ádewir tezirek orınlaw múmkin.
Joqarıdaǵı abzacta bul processtiń sizden derlik tolıq jasırın ekenligi aytılǵanın bayqaǵan bolarsız. Eger Python processi siziń kompyuterińizde jazıw huqıqına iye bolsa, ol programmanıń bayt kodın .pyc keńeytpesi bar fayllarǵa saqlap qoyadı
(".pyc" kompilyaciya etilgen ".py" deregin ańlatadı). Bul fayllar bir neshe programmalardı iske túsirgenińizden keyin, tiyisli derek kodı faylları menen birge
(yaǵnıy, sol papkalarda) kompyuterińizde payda boladı.
Python bayt kodın usılay iske túsiw waqtın optimallastırıw ushın saqlap qoyadı.
Kelesi ret programmańızdı iske túsirgenińizde, eger bayt kod sońǵı ret saqlap qoyılǵannan beri derek kodıńızdı ózgertpegen bolsańız, Python .pyc faylların júkleydi hám kompilyaciya basqıshın ótkizip jiberedi. Python qashan qayta kompilyaciya qılıw kerekligin biliw ushın derek kod hám bayt kod fayllarınıń waqıt belgilerin avtomatik túrde tekserip turadı - eger derek kodıńızdı qayta saqlasańız, bayt kod kelesi ret programmańız iske túsirilgende avtomatik túrde qayta jaratıladı.
Eger Python siziń kompyuterińizge bayt kod faylların jaza almasa da, programmańız jumıs isley beredi - bayt kod yadta payda etiledi hám programma juwmaqlanıwdan-aq ápiwayi túrde óshirilip taslanadı.* Biraq, .pyc faylları iske

túsiw waqtın tezlestiretuǵını sebepli, úlkenirek programmalar ushın olardıń jazılıwın támiyinlewdi qáleysiz. Bayt kod faylları sonday-aq Python programmaların tarqatıwdıń bir usılı bolıp tabıladı - hatte dáslepki .py derek kodı faylları joq bolsa da, Python tek .pyc faylların taba alsa da programmanı iske túsire aladı. (Tarqatıwdıń basqa usılı ushın 32-bettegi "Muzlatılǵan binarlar" bólimin kóriń.)
Python Virtual Mashinası (PVM)
Programmańız bayt kodǵa kompilyaciya qılınǵannan keyin (yamasa bayt kod bar bolǵan .pyc fayllarınan júklengennen keyin), ol ádette Python Virtual Mashinası (qısqartırıwdı jaqsı kóretugınlar ushın PVM) dep atalatuǵın nársege orınlaw ushın jiberiledi. PVM esitilgenindey áhmiyetli emes; shınında da, ol bólek programma emes hám onı ózin-ózi ornatıwdıń keregi joq. Ámeliyatta, PVM tek siziń bayt kod kórsetpelerińizdi bir-birlep aylanıp ótip, olardıń operaciyaların orınlaw ushın úlken bir cikl bolıp tabıladı. PVM - bul Pythonnıń orınlaw motorı; ol bárhama Python sistemasınıń bir bólegi sıpatında bar hám ol siziń skriptlerińizdi haqıyqattan orınlaytuǵın komponent bolıp tabıladı. Texnikalıq jaqtan, ol "Python interpretatorı" dep atalatuǵın nárseniń sońǵı basqıshı ǵana.
2-2-súwrette usı jerde táriyiplengen orınlaw strukturası kórsetilgen. Esińizde bolsın, bul quramalılıqtıń barlıǵı Python programmistlerinen bilip turıp jasırılǵan.
Bayt kodqa kompilyaciya avtomatik túrde ámelge asadı, al PVM bolsa tek siziń kompyuterińizge ornatılǵan Python sistemasınıń bir bólegi. Taǵı da, programmistler (baǵdarlamashılar) ápiwayı túrde kod jazadı hám operatorlar faylların iske túsiredi.
Ónimlilikke tásiri
C hám C++ sıyaqlı tolıq kompilyaciya qılınatugın tiller boyınsha tájiriybesi bar oqıwshılar Python modelinde bir qansha parıqlardı bayqawı múmkin. Birinshiden, Python jumısında ádette qurıw yamasa "make" basqıshı bolmaydı: kod jazılǵannan keyin dárhal iske túsedi. Ekinshiden, Python bayt kodı ekilik mashina kodı emes
(mısalı, Intel chipı ushın kórsetpeler). Bayt kod - bul Pythonǵa tán bolǵan arnawlı kórinis.
2-2-súwret. Pythonnıń dástúrli orınlaw modeli: siz jazǵan derek kodı bayt kodına awdarıladı, soń ol Python Virtual Mashinası tárepinen orınlanadı. Sizdiń kodıńız avtomatik túrde kompilyaciya qılınadı, biraq keyin ol interpretaciya qılınadı.
Bul ne ushın ayırım Python kodlarınıń 1-bapta táriyiplengendey C yamasa C++ kodı sıyaqlı tez jumıs islemewiniń sebebi bolıp tabıladı - PVM cikli, CPU chipi emes, ele de bayt kodın interpretaciya qılıwı kerek, al bayt kod kórsetpeleri CPU kórsetpelerine qaraǵanda kóbirek jumıs talap etedi. Ekinshi tárepten, klassikalıq interpretatorlardan parıqlı, ele de ishki kompilyaciya basqıshı bar - Python hár bir derek operatorın qayta-qayta analiz qılıw hám qayta ózgertiwdi talap etpeydi. Juwmaqlap aytqanda, taza Python kodı dástúriy kompilyaciya qılınatuǵın til menen dástúriy interpretaciya qılınatuǵın til arasındaǵı tezlikte isleydi. Python ónimliliginiń balansı haqqında kóbirek maǵlıwmat alıw ushın 1-baptı kóriń.
Rawajlanıw tásiri
Pythonnıń orınlaw modeliniń basqa bir nátiyjesi sonnan ibarat, rawajlanıw hám orınlaw ortaları arasında haqıyqıy parıq joq. Yaǵnıy, siziń derek kodıńızdı kompilyaciya qılatuǵın hám orınlaytuǵın sistemalar shın mánisinde bir hám sol. Bul uqsaslıq dástúriy kompilyaciya qılınatugın tiller boyınsha tájiriybesi bar oqıwshılar ushın áhmiyetlirek bolıwı múmkin, biraq Pythonda kompilyator hámme waqıt orınlaw waqtında bar hám programmalardı ámelge asıratuǵın sistemanıń bir bólegi bolıp tabıladı.
Bul jaǵday rawajlanıw ciklin ádewir tezlestiredi. Orınlawdı baslamastan aldınnan kompilyaciya qılıw hám baylawdıń keregi joq; tek kodtı jazıp, onı júrgiziw jetkilikli. Bul tilge kóbirek dinamikalıq ózgeshelik qosadı - Python baǵdarlamaları orınlaw waqtında basqa Python baǵdarlamaların dúziw hám orınlaw múmkinshiligin beredi, hám bul kóbinese júdá qolaylı boladı. Mısalı, eval hám exec sıyaqlı qurılǵan funkciyalar Python baǵdarlama kodın óz ishine alǵan qatarlardı qabıl etedi hám orınlaydı.
Bul dúzilis sonıń ushın da Pythondı ónim kustomizaciyasına jaqsı ıqtiyarlı etedi - sebebi Python kodın tez arada ózgertiwge boladı, paydalanıwshılar sistemanıń Python bóleklerin pútkil sistema kodın iye bolmay yamasa kompilyaciya qılmayaq jerde ózgerte aladı.
Tiykarǵı dárejede, este saqlań, Pythonda bizde tek ǵana orınlaw waqtı bar - hesh qanday dáslepki kompilyaciya waqtı basqıshı joq, hám hámmesi baǵdarlama júrip atırǵanda júz beredi. Bul hátte funkciyalar menen klasslardı jaratıw hám
modullerdi baylaw sıyaqlı operaciyalardı da óz ishine aladı. Bunday waqıyalar kóbirek statikalıq tillerde orınlawdan aldın júz beredi, biraq Pythonda baǵdarlamalar orınlanǵanda júz beredi. Kórgenimizdey, juwmaqlawshı tásir ayırım oqıwshılar úyrengen nársege qaraǵanda ádewir dinamikalıq baǵdarlamalastırıw tájiriybesin payda etedi.
Orınlaw Modeli Variantları
Aldıǵa ótpesten burın, aldıńǵı bólimde berilgen ishki orınlaw aǵımı búgingi kúndegi Pythonnıń standart ámelge asırılıwın kórsetedi, biraq ol Python tiliniń ózi ushın haqıyqıy talap emes ekenin aytıp ótiw kerek. Sonıń ushın, orınlaw modeli waqıt ótiwi menen ózgeriwge beyim. Haqıyqatında, 2-2-súwrettegi kórinisti azǵana ózgertetuǵın bir neshe sistemalar álleqashan bar. Kel, bul variantlardıń eń kórneklilerin izertlew ushın bir neshe minut ajıratayıq.
Python Ámelge Asırıw Alternativleri
Shınında da, bul kitap jazılıp atırǵan waqıtta Python tiliniń úsh tiykarǵı ámelge asırılıwı bar - CPython, Jython hám IronPython - sonıń menen birge Stackless Python sıyaqlı bir qansha ekinshi dárejeli ámelge asırıwlar da bar. Qısqasha aytqanda, CPython - bul standart ámelge asırıw; basqalarınıń hámmesinıń júdá anıq maqsetleri hám wazıypaları bar. Olardıń hámmesi birdey Python tilin ámelge asıradı, biraq baǵdarlamalardı hár qıylı usıllar menen orınlaydı.
CPython
Pythonnıń dáslepki hám standart ámelge asırılıwı, onı basqa ekewi menen salıstırǵıńız kelgende, ádette CPython dep ataladı. Onıń atı kóshirmeli ANSI C til kodında jazılǵanınan kelip shıqqan. Bul - siz http://www.python.org saytınan alıp, ActivePython tarqatılıwı menen alatuǵın hám kópshilik Linux hám Mac OS X mashinalarda avtomatik túrde bar bolatuǵın Python. Eger mashinańızda aldın ala ornatılǵan Python nusqasın tapsańız, ol, kompaniyańız Pythondı júdá arnawlı usıllar menen qollanbaytıǵın bolsa, itimallıǵı joqarı CPython boladı.
Eger siz Python menen Java yamasa .NET baǵdarlamaların skriptlestiriwdi qálemeseńiz, siz, sózsiz, standart CPython sistemasın qollanıwıńız kerek. Ol tildiń anıqlawshı ámelge asırılıwı bolǵanlıǵı sebepli, ol eń tez islewge, eń tolıq bolıwǵa hám alternativ sistemalarǵa qaraǵanda bekkem bolıwǵa beyim. 2-2-súwret CPythonnıń orınlaw waqtı arxitekturasın kórsetedi.
Jython
Jython sisteması (dáslep JPython dep tanılǵan) - Python tiliniń Java baǵdarlamalastırıw tili menen birlestiriw ushın arnalǵan alternativ ámelge asırılıwı. Jython Python derek kodın Java bayt kodına kompilyaciya qılatuǵın hám nátiyjedegi bayt kodtı Java Virtual Mashinasına (JVM) jiberetuǵın Java klasslarınan turadı. Baǵdarlamashılar ele de ádettegidey Python kórsetpelerin .py tekst fayllarında kodlaydı; Jython sisteması tiykarınan 2-2-súwrettegi oń táreptegi eki sharikti Java tiykarındaǵı ekvivalentler menen almastıradı.
Jythonnıń maqseti - CPythonnıń Python arqalı C hám C++ komponentlerin skriptlestiriwge múmkinshilik beriwi sıyaqlı, Python kodınıń Java baǵdarlamaların skriptlestiriwine ruqsat beriw. Onıń Java menen integraciyası ájayıp dárejede tegis. Python kodı Java bayt kodına awdarılǵanlıǵı sebepli, ol orınlaw waqtında haqıyqıy Java baǵdarlaması sıyaqlı kórinedi hám seziledi. Jython skriptleri veb-appletler hám servletler sıpatında xızmet ete aladı, Java tiykarındaǵı GUIlardı qura aladı hám taǵı basqalar. Bunnan tısqarı, Jython Python kodınıń Java klassların, olar Pythonda kodlanǵanday, import qılıwına hám paydalanıwına múmkinshilik beretugın integraciya qollawın óz ishine aladı.
Biraq, Jython CPythonǵa qaraǵanda ásterek hám kem bekkem bolǵanlıǵı sebepli, ol kóbinese Java baǵdarlamashılarınıń Java kodına aldınǵı interfeys bolatuǵın skriptlew tilin izlep atırǵanlar ushın qızıǵıwshılıq tuwdıratıǵın qural sıpatında qaraladı.
IronPython
Pythonnıń úshinshi ámelge asırılıwı bolǵan hám CPython hám Jythonnan jańalaw bolǵan IronPython, Python baǵdarlamalarınıń Microsofttıń Windows ushın .NET Frameworkı menen islewge arnalǵan baǵdarlamalar, sonday-aq Linux ushın Mono ashıq jeke ekvivalenti menen integraciyalanıwına múmkinshilik beriw ushın dizayn etilgen. .NET hám onıń C# baǵdarlamalastırıw tili orınlaw sisteması, Microsofttıń burınǵı COM modeli ruwxında, til jaqtan neytral obyekt kommunikaciya qatlamı bolıwǵa arnalǵan.
IronPython Python baǵdarlamalarına basqa .NET tillerinen erisiwi múmkin bolǵan klient hám server komponentleri sıpatında háreket etiw imkaniyatın beredi. Ámelge asırılıwı boyınsha, IronPython Jythonǵa júdá uqsas (haqıyqatında, ol birdey dóretiwshi tárepinen islep shıǵılǵan) - ol 2-2-súwrettegi aqırǵı eki sharikti
.NET ortalıǵında orınlaw ushın ekvivalentler menen almastıradı. Jython sıyaqlı, IronPythonnıń da arnawlı fokusı bar - ol tiykarınan Pythondı .NET komponentleri menen integraciyalaw menen shuǵıllanıwshı baǵdarlamashılar ushın qızıqlı.
Biraq, Microsoft tárepinen rawajlandırılıp atırǵanlıǵı sebepli, IronPython jaqsıraq iskerlik kórsetiw ushın ayırım áhmiyetli optimizaciya quralların paydalanıw imkaniyatına iye bolıwı múmkin. Men bunı jazıp atırǵan waqıtta IronPythonnıń kólemi ele rawajlanıp atır; qosımsha maǵlıwmatlar ushın Python onlayn resursların kóriń yamasa internetten izleń.
Orınlaw Optimizaciya Quralları
CPython, Jython hám IronPython hámmesi Python tilin uqsas usıllar menen ámelge asıradı: jeke kodtı bayt kodqa kompilaciya qılıw hám bayt kodtı sáykes virtual mashinada orınlaw arqalı. Basqa sistemalar, sonıń ishinde Psyco "just-in- time" kompilyatorı hám Shedskin C++ awdarıwshısı, tiykarǵı orınlaw modelin optimizaciyalaw ushın háreket etedi. Bul sistemalar házirgi waqıtta Python kárerańızda talap etiletuǵın bilim emes, biraq olardıń orınlaw modelindegi ornına qısqa itibar beriw, ulıwma modeldi túsindiriwge járdem beriwi múmkin.
Psyco "just-in-time" kompilyatorı
Psyco sisteması basqa bir Python ámelge asırılıwı emes, al baǵdarlamalardı tezirek jumıs islewine múmkinshilik beriw ushın bayt kod orınlaw modelin keńeytetuǵın komponent bolıp tabıladı. 2-2-súwret kóz-qarasınan, Psyco - baǵdarlama jumıs islep atırǵan waqıtta tip haqqında maǵlıwmattı jıynap hám paydalanıp, baǵdarlamanıń bayt kodınıń bóleklerin tezirek orınlaw ushın haqıyqıy binar mashina kodına awdaratuǵın PVM-niń jaqsılanıwı. Psyco bul awdarmanı kodqa ózgerisler kirgiziw yamasa rawajlandırıw barısında ayrıqsha kompilaciya basqıshın talap etpesten ámelge asıradı.
Ulıwma alǵanda, siziń baǵdarlamańız jumıs islep atırǵanda, Psyco jetkerip berilip atırǵan obyektlerdiń túrleri haqqında maǵlıwmat jıynaydı; bul maǵlıwmat sol obyekt tipleri ushın arnawlı jobalastırılǵan júdá nátiyjeli mashina kodın payda etiw ushın qollanılıwı múmkin. Payda etilgennen keyin, mashina kodı baǵdarlamańızdıń ulıwma orınlanıwın tezlestiriw ushın dáslepki bayt kodınıń sáykes bólegin almastıradı. Juwmaqlawshı nátiyje sonda, Psyco menen siziń baǵdarlamańız waqıt ótiwi menen hám jumıs barısında ádewir tezlesedi. Ideal jaǵdaylarda, ayırım Python kodları Psyco astında kompilaciya qılınǵan C kodı sıyaqlı tez bolıwı múmkin.
Bayt kodtan bul awdarma baǵdarlama orınlanıw waqtında júz beretuǵın bolǵanlıqtan, Psyco ulıwma jaǵdayda "just-in-time" (JIT) kompilyatorı dep tanıladı. Degen menen, Psyco ayırım oqıwshılar Java tili ushın kórgen JIT