Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions doc/MastersThesis/Lhs/Appendix.lhs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

\section{Literate Programming}

This thesis leverages~\footnote{\href{https://en.wikipedia.org/wiki/Literate_programming}{\textcolor{blue}{Literate Programming}}.}, a concept
introduced by Donald Knuth~\cite{knuth1992}. Hence, this thesis can be executed using the same source files that the \texttt{PDF} is created
This dissertation made use of literate programming~\footnote{\href{https://en.wikipedia.org/wiki/Literate_programming}{\textcolor{blue}{Literate Programming}}.}, a concept
introduced by Donald Knuth~\cite{knuth1992}. Hence, this document can be executed using the same source files that the \texttt{PDF} is created

This process requires the following dependencies:
\begin{itemize}
Expand Down
44 changes: 22 additions & 22 deletions doc/MastersThesis/Lhs/Caching.lhs

Large diffs are not rendered by default.

46 changes: 28 additions & 18 deletions doc/MastersThesis/Lhs/Conclusion.lhs

Large diffs are not rendered by default.

46 changes: 23 additions & 23 deletions doc/MastersThesis/Lhs/Design.lhs

Large diffs are not rendered by default.

42 changes: 21 additions & 21 deletions doc/MastersThesis/Lhs/Enlightenment.lhs

Large diffs are not rendered by default.

186 changes: 171 additions & 15 deletions doc/MastersThesis/Lhs/Fixing.lhs

Large diffs are not rendered by default.

72 changes: 36 additions & 36 deletions doc/MastersThesis/Lhs/Implementation.lhs

Large diffs are not rendered by default.

32 changes: 16 additions & 16 deletions doc/MastersThesis/Lhs/Interpolation.lhs

Large diffs are not rendered by default.

130 changes: 75 additions & 55 deletions doc/MastersThesis/Lhs/Introduction.lhs

Large diffs are not rendered by default.

27 changes: 27 additions & 0 deletions doc/MastersThesis/bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -438,4 +438,31 @@ @book{knuth1992
isbn = {0937073806},
publisher = {Center for the Study of Language and Information},
address = {USA}
}

@article{Simulink,
author = {Ekhande, Rahul},
year = {2014},
month = {01},
title = {Chaotic Signal for Signal Masking in Digital Communications},
volume = {4},
journal = {IOSR Journal of Engineering},
doi = {10.9790/3021-04252933}
}

@inproceedings{Yampa,
author = {Perez, Ivan},
title = {The Beauty and Elegance of Functional Reactive Animation},
year = {2023},
isbn = {9798400702952},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3609023.3609806},
doi = {10.1145/3609023.3609806},
booktitle = {Proceedings of the 11th ACM SIGPLAN International Workshop on Functional Art, Music, Modelling, and Design},
pages = {8–20},
numpages = {13},
keywords = {Functional Reactive Programming, animation, dataflow, domain-specific languages},
location = {Seattle, WA, USA},
series = {FARM 2023}
}
Binary file modified doc/MastersThesis/img/TimeDomains.pdf
Binary file not shown.
Binary file added doc/MastersThesis/img/lorenzSimulink.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion doc/MastersThesis/tex/abstract.tex
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@

Physical phenomena is difficult to properly model due to its continuous nature. Its paralellism and nuances were a challenge before the transistor, and even after the digital computer still is an unsolved issue. In the past, some formalism were brought with the General Purpose Analog Computer proposed by Shannon in the 1940s. Unfortunately, this formal foundation was lost in time, with \textit{ad-hoc} practices becoming mainstream to simulate continuous time. In this work, we propose a domain-specific language (DSL) -- FACT and its evolution FFACT -- written in Haskell that resembles GPAC's concepts. The main goal is to take advantage of high level abtractions, both from the areas of programming and mathematics, to execute systems of differential equations, which describe physical problems mathematically. We evaluate performance and domain problems and address them accordingly. Future improvements for the DSL are also explored and detailed.
Physical phenomena are difficult to properly model due to their continuous nature. Its paralellism and nuances were a challenge before the transistor, and even after the digital computer it still is an unsolved issue. In the past, some formalism were brought with the General Purpose Analog Computer proposed by Shannon in the 1940s. Unfortunately, this formal foundation was lost in time, with \textit{ad-hoc} practices becoming mainstream to simulate continuous time. In this work, we propose a domain-specific language (DSL) -- FACT and its evolution FFACT -- written in Haskell that resembles GPAC's concepts. The main goal is to take advantage of high level abtractions, both from the areas of programming and mathematics, to execute systems of differential equations, which describe physical problems mathematically. We evaluate performance and domain problems and address them accordingly. Future improvements for the DSL are also explored and detailed.
15 changes: 7 additions & 8 deletions doc/MastersThesis/tex/acknowledgments.tex
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
First and foremost, I thank my main advisor Edil Medeiros.
First, I must acknowledge my main advisor, Edil Medeiros.
Since graduation, and now in my masters, he trusted that my effort could go on and beyond, surpassing my own expectations
and limits, getting out of my comfort zone. All the endless meetings, including on the weekends, filled with thoughtful advice and helpful comments,
will be the most remarkable memory of the best teacher I have encountered to this day -- title that Edil got back when I was doing graduation and he
will be the most remarkable memory of the best mentor I have encountered to this day -- a title that Edil got back when I was doing graduation, and he
continues to be worthy.

I'm thankful to my Computer Science study group, Dr.Nekoma, for the continue joyful programminig practices leveraging functional programming principles, something that is
still the core foundation of the present work, even though this paradigm remains as uncommon both in the industry of software development and in the academia.
I'm thankful to my Computer Science study group, Dr.Nekoma, for the continued joyful programming practices leveraging functional programming principles, something that is
still the core foundation of the present work, even though this paradigm remains uncommon both in the industry of software development industry and in academia.

I'm grateful for the company I'm currently working in, Tontine Trust, where I'm surrounded by real problems being solved in the Haskell; a programming language
that I ended up being a fond of since my final graduation project written in it.
I'm grateful for the company I'm currently working in, Tontine Trust, where I'm a member of a great team delivering a challenging product to the market. Some of these challenges are being solved in Haskell; a programming language
I grew fond of it since my final graduation project was written in it. This work is a continuation of that.

Finally, a special thanks for everybody that took any amount of time to read any draft I had of this thesis, providing honest feedback to enhance my thesis
before the end of my masters.
Finally, a special thanks to everybody who took any amount of time to read any draft I had of this dissertation, providing honest feedback.
2 changes: 1 addition & 1 deletion doc/MastersThesis/tex/dedication.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

To my father Rodolfo Rocha, for sharing with me his wise and insightful perceptions about life.
Your distinct perspectives bring me awareness about any subject that we end up
discussing. Not everyone can have the luxuary of having
discussing. Not everyone can have the luxury of having
civil and calm conversations with whom they may fundamentally disagree. My dad gave me my first
opportunities of this kind and I'm truly grateful to him for that.

Expand Down
7 changes: 5 additions & 2 deletions doc/MastersThesis/thesis.lhs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\documentclass[qualificacao,mestrado,ppgi]{UnB-CIC}
\documentclass[mestrado,ppgi]{UnB-CIC}

%include polycode.fmt
%include MastersThesis/lineno.fmt
Expand Down Expand Up @@ -32,6 +32,9 @@
\newminted[code]{haskell}{breaklines,autogobble,linenos=true, numberblanklines=false, fontsize=\footnotesize}
\newminted[spec]{haskell}{breaklines,autogobble,linenos=true, numberblanklines=false, fontsize=\footnotesize}
\newminted[purespec]{haskell}{breaklines,autogobble,linenos=false, numberblanklines=false, fontsize=\footnotesize}
\newminted[matlab]{matlab}{breaklines,autogobble,linenos=false, numberblanklines=false, fontsize=\footnotesize}
\newminted[python]{python}{breaklines,autogobble,linenos=false, numberblanklines=false, fontsize=\footnotesize}
\newminted[mathematica]{mathematica}{breaklines,autogobble,linenos=false, numberblanklines=false, fontsize=\footnotesize}

\orientador{\prof Eduardo Peixoto}{CIC/UnB}%
\coorientador{\prof José Edil Guimarães}{ENE/UnB}%
Expand All @@ -43,7 +46,7 @@

\autor{Eduardo L.}{Rocha}%

\titulo{Continuous Time Modeling Made Functional: Fixing Differential Equations with Haskell}%
\titulo{FFACT: A Fix-based Domain-Specific Language based on a Functional Algebra for Continuous Time Modeling}%

\palavraschave{equações diferenciais, sistemas contínuos, GPAC, integrador, ponto fixo, recursão monádica}
\keywords{differential equations, continuous systems, GPAC, integrator, fixed-point, fixed-point combinator, monadic recursion}%
Expand Down
Loading