Naslov Arhitektura sustava PyPy
Naslov (engleski) PyPy System Architecture
Autor Sara Zovko
Mentor Klemo Vladimir (mentor)
Član povjerenstva Klemo Vladimir (predsjednik povjerenstva)
Član povjerenstva Marin Šilić (član povjerenstva)
Član povjerenstva Goran Delač (član povjerenstva)
Ustanova koja je dodijelila akademski / stručni stupanj Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zagreb
Datum i država obrane 2022-07-01, Hrvatska
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Računarstvo
Sažetak Programske jezike se po načinu prevođenja može u grubo podijeliti u dvije skupine, interpretirane i prevedene jezike. Jedna od glavnih razlika između prevedenih (kompiliranih) i interpretiranih jezika je to da su prevedeni programski jezici brži, učinkovitiji, ali ih je teže prenijeti na različite operacijske sustave, dok su interpretirani jezici lako prenosivi, no izvedba im je nešto sporija. Programski jezik Python kombinira oba pristupa, prevođenje i interpretaciju. Python je dinamički programski jezik koji nudi programeru jednostavnost i fleksibilnost pri pisanju koda, no sam po sebi Python nije ni interpreter ni prevoditelj, da bi se Python program izvršio potrebna je neka od Python implementacija odnosno Python interpreter. Danas postoji više Python implementacija (interpretera) koje pružaju razne značajke koje omogućuju ubrzanje izvođenja koda odabirom odgovarajuće implementacije. Jedna od tih implementacija je PyPy. Sustav PyPy je skup alata napisanih u Pythonu i RPythonu koji omogućuju pisanje interpretera za bilo koji dinamički jezik sličan Pythonu. Glavni cilj projekta PyPy je pisanje interpretera za Python u samom Pythonu, a PyPy u toj ulozi je glavna tema ovog rada. PyPy se sastoji od RPython interpretera i RPython prevoditeljskog alata. U radu je detaljno objašnjena arhitektura i način rada sustava PyPy uključujući sve komponente kao što su RPython, JIT, GC te su uspoređene PyPy i CPython implementacije Pythona. Neke od najvažnijih razlika su JIT prevoditelj i niz implementacija skupljača smeća koje nudi PyPy dok CPython koristi AOT prevoditelj te brojanje referenci i ciklički sakupljač za čišćenje smeća. Iz primjera u poglavlju 4 vidljivo je da u određenim situacijama PyPy implementacija pokazuje veliko ubrzanje u usporedbi sa standardnom CPython implementacijom, no još uvijek nije potpuna zamjena Cpython-a.
Sažetak (engleski) According to the method of translation, programming languages can be roughly divided into two groups, interpreted and compiled languages. One of the main differences between compiled and interpreted languages is that compiled programming languages are faster, more efficient, but harder to transfer to different operating systems, while interpreted languages are easily portable, but their performance is somewhat slower. The Python programming language combines both approach, translation and interpretation. Python is a dynamic programming language that offers the programmer simplicity and flexibility in writing code, but Python itself is neither an interpreter nor a compiler, in order to run a Python program requires some of the Python implementations or Python interpreter. Today, there are several Python implementations (interpreters) that provide various features that allow you to speed up code execution by selecting the appropriate implementation. One of these implementations is PyPy. The PyPy system is a set of tools written in Python and RPython that allow you to write interpreters for any dynamic Python-like language. The main goal of the PyPy project is to write an interpreter for Python in Python itself, and PyPy in that role is the main topic of this paper. PyPy consists of an RPython interpreter and an RPython translation tool. The paper explains in detail the architecture and mode of operation of the PyPy system, including all components such as RPython, JIT, GC, and compares PyPy and CPython implementations of Python. Some of the most important differences are the JIT compiler and the range of garbage collector implementations offered by PyPy while CPython uses the AOT compiler and the reference count and cyclic garbage collector. It can be seen from the examples in Chapter 4 that in certain situations the PyPy implementation shows a large acceleration compared to the standard CPython implementation, but it is still not a complete replacement for Cpython.
Ključne riječi
PyPy
Python
CPython
RPython
interpreter
prevoditelj
JIT prevoditelj
sakupljač smeća
Ključne riječi (engleski)
PyPy
Python
CPython
RPython
interpreter
prevoditelj
just-in-time compiler
garbage collector
Jezik hrvatski
URN:NBN urn:nbn:hr:168:655535
Studijski program Naziv: Računarstvo Vrsta studija: sveučilišni Stupanj studija: diplomski Akademski / stručni naziv: magistar/magistra inženjer/inženjerka računarstva (mag.ing.comp.)
Vrsta resursa Tekst
Način izrade datoteke Izvorno digitalna
Prava pristupa Zatvoreni pristup
Uvjeti korištenja
Javna napomena
Datum i vrijeme pohrane 2023-01-13 14:19:06