a746331283ffcfbe208b264112008877dd488e67
[phd-thesis.git] / preamble / glossaries.tex
1 \usepackage[nolangwarn,nonumberlist,prefix]{glossaries-extra}
2 \setabbreviationstyle{long-short}
3 \setabbreviationstyle[noexpand]{short-nolong}
4 %\setabbreviationstyle[scabbr]{short-sc-nolong}
5 \Addlcwords{of}
6 \glssetcategoryattribute{abbreviation}{glossname}{uc}
7 \glssetcategoryattribute{noexpand}{glossname}{uc}
8 \glssetcategoryattribute{scabbr}{glossname}{uc}
9 \GlsXtrEnableInitialTagging{acronym,abbreviation}{\itag}
10
11 \newcommand*{\glsxtrpostnameacronym}{%
12 \space\rm\glsentrylong{\glscurrententrylabel}, %
13 }
14 %\renewcommand*{\glsxtrpostdescabbreviation}{%
15 % \space (initialism)%
16 %}
17
18 \usepackage{glossary-mcols}
19 \pdfstringdefDisableCommands{%
20 \def\glsxtrlong#1{}%
21 \def\glsxtrlongpl#1{}%
22 \def\glsxtrshort#1{}%
23 \def\glsxtrshortpl#1{}%
24 \def\Glsxtrlong#1{}%
25 \def\Glsxtrlongpl#1{}%
26 \def\Glsxtrshort#1{}%
27 \def\Glsxtrshortpl#1{}%
28 \def\gls#1{}%
29 \def\glspl#1{}%
30 \def\Gls#1{}%
31 \def\Glspl#1{}%
32 \def\MakeUppercase#1{}%
33 }
34
35 % Initialize the glossaries
36 \makeglossaries%
37
38 % Acronyms
39 \newacronym[description={the CO\textsubscript{2} concentration calculated from \glsxtrshort{TVOC} measurements}]{ECO2}{(eCO\textsubscript{2})}{equivalent carbon dioxide}
40 \newacronym[description={a open data interchange format using human readable text}]{JSON}{JSON}{(JavaScript object notation)}
41 \newacronym[description={a publish-subscribe network protocol designed for resource constrained devices}]{MQTT}{MQTT}{(MQ telemetry transport)}
42 \newacronym[description={a pure lazy \glsxtrlong{FP} language based on graph rewriting}]{CLEAN}{Clean}{(Clean language of East-Anglia and Nijmegen)}
43 \newacronym[description={a simple serial communication protocol often used to connect sensors to microcontrollers}]{I2C}{\IIC{}}{(inter-integrated circuit)}
44 \newacronym[description={passive infrared}]{PIR}{PIR}{}
45 \newacronym[description={task-oriented programming}]{TOP}{TOP}{}
46 \newacronym[description={the three ``CO'' (composability, comprehensibility, correctness) of working software}]{3COWS}{3COWS}{}
47
48 % Initialisms
49 \newabbreviation{ADC}{ADC}{analog-to-digital converter}
50 \newabbreviation{ADT}{ADT}{algebraic data type}
51 \newabbreviation{AST}{AST}{abstract syntax tree}
52 \newabbreviation{API}{API}{application programming interface}
53 \newabbreviation{ARDSL}{ARDSL}{\gls{ARDUINO} \glsxtrshort{DSL}}
54 \newabbreviation[category=noexpand]{CEFP}{CEFP}{Central European \glsxtrlong{FP} School}
55 \newabbreviation{CRS}{CRS}{\gls{CLEAN} Raspberry Pi system}
56 \newabbreviation{CRTS}{CRTS}{\gls{CLEAN} Raspberry Pi temperature sensor}
57 \newabbreviation{CWS}{CWS}{\gls{CLEAN} \gls{WEMOS} system}
58 \newabbreviation{CWTS}{CWTS}{\gls{CLEAN} \gls{WEMOS} temperature sensor}
59 \newabbreviation{DHT}{DHT}{digital humidity and temperature}
60 \newabbreviation{DSL}{DSL}{domain-specific language}
61 \newabbreviation{DVFS}{DVFS}{dynamic voltage and frequency scaling}
62 \newabbreviation{EDSL}{EDSL}{embedded \glsxtrlong{DSL}}
63 \newabbreviation[prefixfirst={a\ },prefix={an\ }]{FP}{FP}{functional programming}
64 \newabbreviation[prefixfirst={a\ },prefix={an\ }]{FRP}{FRP}{functional reactive programming}
65 \newabbreviation[prefixfirst={a\ },prefix={an\ }]{FPGA}{FPGA}{field-programmable gate array}
66 \newabbreviation{GADT}{GADT}{generalised \glsxtrshort{ADT}}
67 \newabbreviation{GHC}{GHC}{Glasgow \gls{HASKELL} Compiler}
68 \newabbreviation{GPIO}{GPIO}{general-purpose \glsxtrlong{IO}}
69 \newabbreviation{GPL}{GPL}{general-purpose language}
70 \newabbreviation{GRS}{GRS}{graph rewriting system}
71 \newabbreviation{GUI}{GUI}{graphical \glsxtrlong{UI}}
72 \newabbreviation{HOAS}{HOAS}{high-order abstract syntax}
73 \newabbreviation{IOT}{\IOT{}}{internet of things}
74 \newabbreviation[category=noexpand]{IDE}{IDE}{integrated development environment}
75 \newabbreviation[category=noexpand]{IO}{I/O}{input/output}
76 \newabbreviation{IR}{IR}{intermediate representation}
77 \newabbreviation{ISR}{ISR}{interrupt service routine}
78 \newabbreviation[category=noexpand,prefixfirst={a\ },prefix={an\ }]{LED}{LED}{light-emitting diode}
79 \newabbreviation[category=noexpand]{OLED}{OLED}{organic \glsxtrshort{LED}}
80 \newabbreviation[category=noexpand]{OS}{OS}{operating system}
81 \newabbreviation{OTA}{OTA}{over-the-air}
82 \newabbreviation{PFRP}{p-frp}{priority-based \glsxtrshort{FRP}}
83 \newabbreviation{PRS}{PRS}{\gls{PYTHON} Raspberry Pi system}
84 \newabbreviation{PWS}{PWS}{\gls{MICROPYTHON} \gls{WEMOS} system}
85 \newabbreviation{PRTS}{PRTS}{\gls{PYTHON} Raspberry Pi temperature sensor}
86 \newabbreviation{PWTS}{PWTS}{\gls{MICROPYTHON} \gls{WEMOS} temperature sensor}
87 \newabbreviation{QDSL}{QDSL}{quoted \glsxtrshort{DSL}}
88 \newabbreviation[category=noexpand]{RAM}{RAM}{random-access memory}
89 \newabbreviation{RFID}{RFID}{radio-frequency identification}
90 \newabbreviation{RTOS}{RTOS}{real-time \glsxtrshort{OS}}
91 \newabbreviation{RTS}{RTS}{run-time system}
92 \newabbreviation[prefixfirst={a\ },prefix={an\ }]{SDS}{SDS}{shared data source}
93 \newabbreviation[prefixfirst={a\ },prefix={an\ }]{SN}{SN}{sensor network}
94 \newabbreviation{SLOC}{SLOC}{source lines of code}
95 \newabbreviation[description={a synchronous serial communication protocol often used to connect sensors to microcontrollers}]{SPI}{SPI}{Serial Peripheral Interface}
96 \newabbreviation{TH}{TH}{Template \gls{HASKELL}}
97 \newabbreviation[category=noexpand]{TCP}{TCP}{transmission control protocol}
98 \newabbreviation{TOSD}{TOSD}{task-oriented software development}
99 \newabbreviation{TRS}{TRS}{term rewriting system}
100 \newabbreviation{TTH}{TTH}{typed \glsxtrlong{TH}}
101 \newabbreviation{TVOC}{TVOC}{total volatile organic compounds}
102 \newabbreviation{UI}{UI}{user interface}
103 \newabbreviation{UOD}{UOD}{universe of discourse}
104 \newabbreviation{UOG}{UOG}{University of Glasgow}
105 \newabbreviation{VM}{VM}{virtual machine}
106
107 % Glossaries
108 \newglossaryentry{ABC}{%
109 name=ABC,
110 description={\gls{CLEAN}'s intermediate graph-rewriting language},
111 }
112 \newglossaryentry{MTASK}{%
113 name=mTask,
114 description={a \glsxtrshort{TOP} \glsxtrshort{EDSL} for edge devices integrated with the \gls{ITASK} system},
115 }
116 \newglossaryentry{ITASK}{%
117 name=iTask,
118 description={a \glsxtrshort{TOP} \glsxtrshort{EDSL} for creating distributed multi-user collaborative web applications},
119 }
120 \newglossaryentry{TOPHAT}{%
121 name=TopHat,
122 description={a \glsxtrshort{TOP} language designed to formally capture the essence of \gls{TOP}}
123 }
124 \newglossaryentry{HASKELL}{%
125 name=Haskell,
126 description={a pure lazy \glsxtrlong{FP} language designed by a committe as a concept language}
127 }
128 \newglossaryentry{HASKELL98}{%
129 name=Haskell98,
130 description={a standardised version of \gls{HASKELL}},
131 }
132 \newglossaryentry{ARDUINO}{%
133 name=Arduino,
134 description={a widely used framework for programming microcontrollers}
135 }
136 \newglossaryentry{MBED}{%
137 name=mbed,
138 description={a widely used framework for programming microcontrollers designed for ARM cortex-M}
139 }
140 \newglossaryentry{CPP}{
141 name=C\texttt{++},
142 description={a general-purpose imperative programming language based on \gls{C}}
143 }
144 \newglossaryentry{C}{
145 name=C,
146 description={a general-purpose imperative programming}
147 }
148 \newglossaryentry{WIFI}{
149 name=Wi-Fi,
150 description={is a family of wireless network protocols commonly used for local area networking}
151 }
152 \newglossaryentry{TINYML}{
153 name=TinyML,
154 description={a deep learning framework for microcontrollers}
155 }
156 \newglossaryentry{PYTHON}{
157 name=Python,
158 description={a multi-paradigm interpreted programming language}
159 }
160 \newglossaryentry{MICROPYTHON}{
161 name=MicroPython,
162 description={a \gls{PYTHON} implementation tailored for microcontrollers}
163 }
164 \newglossaryentry{FREERTOS}{
165 name=FreeRTOS,
166 description={an open-source \glsxtrshort{RTOS} for microcontrollers}
167 }
168 \newglossaryentry{ONEWIRE}{
169 name=1-wire,
170 description={a simple single wire communication protocol often used to connect sensors to microcontrollers}
171 }
172 \newglossaryentry{WEMOS}{
173 name=WEMOS,
174 description={a popular ESP8266 microcontroller based prototyping platform supporting \gls{ARDUINO}.}
175 }