[email protected]: ~/site

Hello there! Waving hand

Hi, I'm Gabriele Pappalardo (a.k.a. @gabryon / @gabryon99)! I'm 24 years old. Currently, I'm a Software Developering @ JetBrains, working on a research involving Kotlin for game development. Previously, as an intern, I worked on a Verification Framework for the Kotlin programming language using the Viper Verification Infrastructure

In October 2023 I discussed my master thesis at TUM. The master thesis was made in collaboration with JetBrains. The thesis title is Extending Kotling with Algebraic Effect Handlers: we tried to understand if the Kotlin programming language had room for algebraic effect handlers. We have a small library prototype showing the feasibility of the project, for more information click here. In December 2023 I got my MSc in Computer Science at University of Pisa, while doing an exchange experience at TUM. In October 2021, I obtained my BSc in Computer Science, always at University of Pisa, with my thesis entitled Improving the support for 3D scanned data in MeshLab and PyMeshLab, implementing the support for new file formats and plugins in Python (see the section below).

On this personal blog, I'm going to note things I like (pretty much Computer Science stuff) and I'll use it as a little portfolio for the people who don't know me. I love computers and game consoles and usually, I try to discover how they work under the hood. I have a passion about programming languages and their implementation.

This is me in Anju :)

Projects

To see my projects click here or the "Projects" link inside the navbar.


Past Projects

I developed an imperative programming language called "μComp-lang" as an assignment for "Languages, Compilers and Interpreters" course at University of Pisa. You can find a paper that explains how the language has been implemented here. The code can be found on GitHub here.

The following asciinema shows a little program written in μComp-lang:

mucomp-lang-logo
  • Imperative;
  • Statically type checked;
  • Provides int, char, bool, float, references and arrays types;
  • It uses LLVM to generate native code;
  • Written using OCaml with Menhir, OCamllex and LLVM OCaml bindings;
  • The mascotte's name is "Comu" = "🐄" + "μ" (like: "muuuh") (I know, it's a bad pun).

Contributions to Open Source projects

  • Unikraft PIE Applications: during an hackathon in Munich, a team of coalleagues and me implemented the support for the PHP runtime in Unikraft.
  • ntopng: I redesigned some UI components, such as the sidebar with submenu. See the GitHub repository here and ntop for further details.
  • MeshLab: the contribution for this project is discussed on my bachelor thesis. See the GitHub repository here and MeshLab for further details.
  • VCGLib: see the GitHub repository here and VCGLib for further details.

(Not published) Papers, Presentations and Whatsoever

2023
  • Master's Thesis: Extending Kotlin with Algebraic Effect Handlers
    Abstract: In recent years, Algebraic Effect Handlers have emerged as new computational models to manage computation effects in programming languages. This model is linked to the area of functional programming languages. The thesis will illustrate how it is possible to adapt algebraic effect handlers into the multiparadigm Kotlin programming language through the implementation of a library over continuations. This master thesis is the result of a collaboration with JetBrains Research, which provided valuable insights and support in implementing algebraic effect handlers in Kotlin.
    I would like to thanks Marat Akhin for his time and valueable feedback, allowing me to grow!
  • Review Paper:A Comprehensive Review of Kotlin Coroutines
    Abstract: Asynchronous programming is a technique highly in use during the last decade. The need for responsive applications, with high throughput and low-latency, has never been so important as it is today. Following this trend, mainstream programming languages, such as C++, Rust, Java, Go, Swift; have introduced features to enable asynchronous programming. However, these constructs may not be immediate to the programmer. The following paper will focus on the Kotlin programming language, and its pragmatic approach to asynchronous programming, with the use of coroutines and their modeling through structured concurrency. In addition, we will explore how the Kotlin compiler compiles down coroutines in JVM bytecode, using a continuation-passing style (CPS) compilation with finite state machines.
2021
  • University Presentation:"Just In Time To Understand": An introduction to how JIT compilers work under the hood.
    Abstract: This presentation illustrates a brief history about JIT compilers and how they are implemented (conceptually speaking). This JIT compiler implementation uses the C++ programming language. The presentation was made for "Advanced Programming" colleagues (English 🇬🇧)
  • Bachelor Thesis: Improving the support for 3D scanned data in MeshLab and PyMeshLab.
    Abstract: MeshLab, and its Python counterpart PyMeshLab, have been widely used for processing 3D scanned data. However, some functionalities of MeshLab that are entirely interactive have not been transferred into the scriptable framework under Python. Moreover, an emerging file format for distributing scanned data still is not supported by MeshLab. In this thesis, we have improved the capability of MeshLab to handle different kinds of 3D scanned data by adding the support for 3D scanned LIDAR data (E57). Moreover, by refactoring the core part of the alignment tools, we allowed higher flexibility in their usage in MeshLab and made them available in PyMeshLab. (English 🇬🇧)

Did you know?

If your operating system supports Dark Mode this website will be adapt itself using the @media (prefers-color-scheme: dark) CSS query.

index.html (END)