Repository navigation
Expand file tree
/
Copy pathpaper.tex
More file actions
77 lines (67 loc) · 2.47 KB
/
Copy pathpaper.tex
File metadata and controls
77 lines (67 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
% SPDX-FileCopyrightText: Copyright (c) 2020-2026 Yegor Bugayenko
% SPDX-License-Identifier: MIT
\documentclass[acmsmall,nonacm,11pt]{acmart}
\settopmatter{printfolios=false,printccs=false,printacmref=false}
\makeatletter\let\@authorsaddresses\@empty\makeatother
\usepackage[noframes,nonumbers,nobars,samepage]{/code/ctan/ffcode/ffcode}
\usepackage{/code/ctan/stroke/stroke}
\usepackage{natbib}
\usepackage{doi}
\usepackage{multicol}
\usepackage{eolang}
\usepackage{href-ul}
\usepackage[capitalize]{cleveref}
\usepackage{to-be-determined}
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage[russian,english]{babel}
\DeclareFontFamilySubstitution{T2A}{LinuxBiolinumT-TLF}{LibertinusSans-TLF}
\renewcommand\ttdefault{cmtt}
% stmaryrd (loaded by eolang) lacks a 5.5pt design size for scriptscript math
\DeclareFontFamily{U}{stmry}{}
\DeclareFontShape{U}{stmry}{m}{n}{%
<5><6><7><8><9><10>gen*stmary%
<5.5>stmary5%
<10.95><12><14.4><17.28><20.74><24.88>stmary10%
}{}
\usepackage{csquotes}
\setlength{\footskip}{13.0pt}
\newcommand\deff[1]{\ff{#1}}
\newcommand\adeff[1]{\ff{#1}}
\newcommand\broken{\tbd{This section is not valid, must be rewritten!}}
\title{Reducing Programs to Objects}
\subtitle{
Ver:
\texorpdfstring{
\href{https://github.com/REPOSITORY/releases/tag/0.0.0}
{\ff{0.0.0}}
}{0.0.0}
}
\author{Yegor Bugayenko}
\affiliation{\institution{Huawei}\country{Russia}\city{Moscow}}
\email{yegor256@gmail.com}
\begin{abstract}
C++, Java, C\#, Python, Ruby, and JavaScript are the most
powerful object-oriented programming languages if language power
is defined as the number of \emph{features} available to a programmer.
This abundance of features makes their programs hard to reason about,
to optimize, and to debug, and---unlike functional programming with
its \(\lambda\)-calculus---object-oriented programming has no minimal
foundation to which its programs can be lowered.
\eolang{}, on the other hand, is an object-oriented programming language
with a reduced set of features: it has nothing but objects
and mechanisms of their composition and decoration.
This paper asks the following research question: ``Which known features
are possible to implement using only objects?''
\end{abstract}
\begin{document}
\raggedbottom
\maketitle
\input{sections/introduction}
\input{sections/features}
\input{sections/related-work}
\input{sections/conclusion}
\raggedright
\bibliographystyle{ACM-Reference-Format}
\bibliography{bibliography/main}
\end{document}