What is this graph

PhD student at the Programming Group in the School of Computer Science at the University of St. Gallen

Alumni of EPFL and AUB

Alumni of EPFL and AUB

[first].[last]@unisg.ch

In August 2021 I joined the Programming Group at the University of St. Gallen, Switzerland as a PhD student where I'm supervised by Guido Salvaneschi.

Between 2017 and July 2021 I was an R&D software developer at Agilent Technologies (formerly Genohm) in Lausanne, Switzerland.

In June 2017 I obtained a master's degree in computer science from the École polytechnique fédérale de Lausanne (EPFL) in the LAMP lab. In my thesis I simplified conceptually a polymorphic safe-and-precise effect system.

In 2015 I obtained a bachelor's degree in computer science and a minor in mathematics from the American University of Beirut (AUB). My bachelor's graduation project was to design and implement a quantum functional language.

I am an avid reader, my Goodreads profile lists all my non-technical interests (those outside of CS and math). I speak/read fluently three (natural) languages: English, French, and Arabic.

In my spare time, when I'm not reading or programming, I play Go, snooker, and the mandolin.

- Formal study of Programming Languages with a focus on safe type systems,
- Mathematical Logic and its relation to programming,
- and Quantum Computation from the perspective of computability: here's an introductory article about
Quantum Computation
^{[PDF]}.

I am proficient in many programming paradigms; functional, imperative,
and object-oriented, with preference to functional
languages. I mainly use Python for small applications, Bash for
write-once-execute-once code, C and D for any heavy lifting,
Octave for quick plotting and mathematical computations and
Haskell for any type-theoretic experiments and programs that __must__ be correct.
I am proficient in these programming/scripting/markup languages:

- C, D, Haskell, Scheme, Java, Scala
- Python, Bash, Javascript, PHP
- HTML, CSS, and LaTeX

My primary editor is Vim.

I live in the command line most of the time.

**System F-CA**My masters thesis that builds on the work of Fengyun Liu where we design a precise-and-safe polymorphic effect system using capabilities using one kind of functions (*kind*here does not refer to the standard type-theoretic definition).**Braqet and the MG-QTM Simulator**Braqet is the functional quantum programming language I developed for my bachelor's degree. Its type system adopts the linear types introduced by Selinger and Valiron (2006) with the exception that control in Braqet is purely quantum. The MG-QTM Simulator simulates MG-Quantum Turing Machines and visualises them. MG-QTMs are more general SR-QTMs^{[PDF]}. For the visualization of the graph I used a Forced-Directed Graph Drawing Algorithm^{[PDF]}.**Damncheck**A property-based testing library for D. [Source Code]**Simulation of a Quantum Particle in a Box**[Source Code] [PDF Report]I found the first 5,087,137 digits of*e*Project*e*in ~1hr29min. In 2019 I wrote a parallel version that descreases the runtime linearly with the number of processes and ended up finding the same digits in 27min5sec with 8 threads. [Talk]

This graph represents a 69-state machine, in fact, a
quantum Turing machine ^{[PDF]}. It's a machine that
abides by the laws of quantum mechanics. This machine can be thought of performing
the following algorithm on each superposition `|k,x⟩`

in a 6-dimensional
Hilbert space

x ∈ ℕThis machine is significant to me because I devised it to exhibit conditional looping (as opposed to a statically-bounded loop) which I could not find in the literature. In the process I discovered that the fixed-point of a sequence of compositions of unitary functions may not be itself unitary which raises the question of computing the inverse of such a function._{8}k ∈ ℕ_{8}while |x-k| < 4: x := x + 1 mod 8