1
1
mirror of https://github.com/cqfn/eo.git synced 2024-10-04 12:19:02 +03:00
eo/paper/eolang-paper.tex

153 lines
4.6 KiB
TeX
Raw Normal View History

2021-04-29 16:58:16 +03:00
% The MIT License (MIT)
%
% Copyright (c) 2020-2021 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
% in the Software without restriction, including without limitation the rights
% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
% copies of the Software, and to permit persons to whom the Software is
% furnished to do so, subject to the following conditions:
%
% The above copyright notice and this permission notice shall be included
% in all copies or substantial portions of the Software.
%
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
% FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
% SOFTWARE.
2021-06-13 08:01:57 +03:00
\documentclass[sigplan,nonacm=true,anonymous]{acmart}
2021-04-29 16:58:16 +03:00
\settopmatter{printfolios=false,printccs=false,printacmref=false}
\usepackage[utf8]{inputenc}
2021-06-11 11:12:53 +03:00
\usepackage{ffcode}
2021-04-29 16:58:16 +03:00
\usepackage{CJKutf8}
\usepackage{paralist}
\usepackage{anyfontsize} % To get rid of font not found warnings
2021-05-25 11:21:38 +03:00
\usepackage{tabularx} % for special tables
2021-04-29 16:58:16 +03:00
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tcolorbox} % for algorithm
\tcbuselibrary{skins}
\usepackage{fdsymbol} % for \mathbb
\usepackage{algpseudocode} % for algorithms
\usepackage{multicol} % for two cols in BNF
\usepackage{pgffor} % to enable \foreach
\usepackage{stmaryrd}
\usepackage{mathtools}
\newtheoremstyle{theorems}
{} % Space above
{} % Space below
{} % Theorem body font % (default is "\upshape")
{} % Indent amount
{\scshape} % Theorem head font % (default is \mdseries)
{.} % Punctuation after theorem head % default: no punctuation
{ } % Space after theorem head
{} % Theorem head spec
\theoremstyle{theorems}
\newtheorem{eodefinition}{Definition}
\newtheorem{eotheorem}{Theorem}
\tolerance=1500
\raggedbottom
2021-06-13 07:47:37 +03:00
\newcommand\nospell[1]{#1}
\newcommand\br{\\[-4pt]}
\newcommand\figcap[1]{\caption{#1}\Description{#1}}
\newcommand\phic{{$\varphi$-calculus}}
\newcommand\eo{{\sffamily EO}}
\newcommand\tbd[1]{{\color{red}#1}}
\newcommand\lref[1]{the line no.~\ref{ln:#1}}
\newcommand\lrefs[2]{the lines~\ref{ln:#1}--\ref{ln:#2}}
2021-04-29 16:58:16 +03:00
2021-06-13 07:45:44 +03:00
\acmBooktitle{untitled}
2021-04-29 16:58:16 +03:00
\title{EOLANG and $\varphi$-calculus}
\author{Yegor Bugayenko}{}{}
\email{yegor256@gmail.com}
\affiliation{
\institution{}
\city{Moscow}
\country{Russia}
}
\ccsdesc[300]{Software and its engineering~Software notations and tools~Formal language definitions}
\keywords{Object-Oriented Programming, Object Calculus}
2021-06-10 15:33:19 +03:00
\input{tikz-config}
2021-04-29 16:58:16 +03:00
\begin{document}
\begin{abstract}
Object-oriented programming (OOP) is one of the most popular
paradigms used for building software systems. However, despite
its industrial and academic popularity, OOP is still missing
a formal apparatus similar to $\lambda$-calculus, which functional
programming is based on. There were a number of attempts to formalize
OOP, but none of them managed to cover all the features available in
modern OO programming languages, such as C++ or Java.
We've made yet another attempt and created \phic{}. We also
created EOLANG (also called \eo{}), an experimental
programming language based on \phic{}.
\end{abstract}
\maketitle
\section{Overview}
\input{overview}
\section{Syntax}
\label{sec:syntax}
\input{syntax}
\section{Calculus}
\label{sec:calculus}
\input{calculus}
\section{Semantics}
\label{sec:semantics}
\input{semantics}
\section{Pragmatics}
\label{sec:pragmatics}
\input{pragmatics}
2021-05-27 20:56:31 +03:00
\section{Examples}
\label{sec:examples}
\input{examples}
2021-06-13 07:00:48 +03:00
\section{Related Works}
\label{sec:related}
\input{related}
2021-04-29 16:58:16 +03:00
\section{Acknowledgments}
Many thanks to (in alphabetic order of last names)
\nospell{Fabricio Cabral},
\nospell{Kirill Chernyavskiy},
\nospell{Piotr Chmielowski},
\nospell{Konstantin Gukov},
\nospell{Ali-Sultan Kirgizbaev},
2021-06-06 15:11:02 +03:00
\nospell{Tymur $\lambda$ysenko},
2021-06-11 11:32:17 +03:00
\nospell{Alexandr Naumchev},
2021-04-29 16:58:16 +03:00
\nospell{Alonso A. Ortega},
\nospell{John Page},
\nospell{Alex Panov},
2021-05-17 22:22:41 +03:00
\nospell{Alexander Pushkarev},
2021-04-29 16:58:16 +03:00
\nospell{Marcos Douglas B. Santos},
\nospell{Alex Semenyuk},
\nospell{Sergei Skliar},
\nospell{Stian Soiland-Reyes},
\nospell{Viacheslav Tradunskyi},
\nospell{Ilya Trub},
and
\nospell{César Soto Valero}
for their contribution to the development of \eo{} and \phic{}.
\bibliographystyle{ACM-Reference-Format}
\raggedright
\bibliography{main}
\clearpage
\end{document}