Tietorakennekirjastojen toteutukset - Scala vs. Python

No Thumbnail Available

Files

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Bachelor's thesis
Electronic archive copy is available locally at the Harald Herlin Learning Centre. The staff of Aalto University has access to the electronic bachelor's theses by logging into Aaltodoc with their personal Aalto user ID. Read more about the availability of the bachelor's theses.

Date

2024-05-06

Department

Major/Subject

Tietotekniikka

Mcode

SCI3027

Degree programme

Teknistieteellinen kandidaattiohjelma

Language

fi

Pages

17

Series

Abstract

Tämä kandidaatintyö käsittelee Scala- ja Python-ohjelmointikielten tietorakenteiden toteutuksia. Työssä tutkitaan valittujen tietorakenteiden toteutuksia, mahdollisia rajoitteita ja eroavaisuuksia suorituskyvyssä. Tavoitteena on ymmärtää, miten Scalan ja Pythonin tietorakenteiden toteutukset eroavat toisistaan. Vakiokirjastoista rajataan tutkimuksen kohteeksi Scalalle List, TreeMap ja ArrayBuffer tietorakenteet. Pythonille rajauksen kohteena ovat List, Dictionary ja Tuple. Tutkimusmenetelmänä käytetään kirjallisuuskatsausta viitaten tiedekirjallisuuteen, ohjelmointikielten dokumentaatioon ja ohjelmointikielten avoimeen lähdekoodiin. Tietorakenteiden toteutuksiksi saatiin Scalan Listalle muuttumaton yksisuuntainen linkitetty lista. Scalan TreeMap on toteutettu punamustana puuna. TreeMapille on olemassa sekä muuttuvatilainen että muuttumaton toteutus. Scalan ArrayBuffer on muuttuvatilainen dynaaminen taulukko. Pythonin List on myös toteutettu muuttuvatilaisena dynaamisena taulukkona. Pythonin Dictionaryn toteutus on muuttuvatilainen hajautustaulu ja Tuplen muuttumaton staattinen taulukko. Tuloksista voidaan havaita, että ohjelmointikielen ja tietorakenteen valinnalla on merkitystä. Esimerkiksi Pythonin Listan loppuun lisääminen on vakioaikainen operaatio kun taas Scalan Listan loppuun lisääminen on lineaarinen operaatio. On siis tärkeää tietää miten tietorakenteet ovat toteutettu eri ohjelmointikielissä.

Description

Supervisor

Savioja, Lauri

Thesis advisor

Korhonen, Ari

Keywords

Scala, Python, tietorakenne, taulukko, hajautustaulu, punamusta puu

Other note

Citation