updates
[phd-thesis.git] / preamble / glossaries.tex
index 661ddc1..97975b6 100644 (file)
-\usepackage[nolangwarn,abbreviations,nonumberlist,prefix]{glossaries-extra}
+\usepackage[nolangwarn,nonumberlist,prefix]{glossaries-extra}
 \setabbreviationstyle{long-short-sc}
 \setabbreviationstyle[noexpand]{short-nolong}
+\setabbreviationstyle[scabbr]{short-sc-nolong}
 \Addlcwords{of}
+\glssetcategoryattribute{abbreviation}{glossname}{uc}
+\glssetcategoryattribute{noexpand}{glossname}{uc}
+\glssetcategoryattribute{scabbr}{glossname}{uc}
+\GlsXtrEnableInitialTagging{acronym,abbreviation}{\itag}
+
+\newcommand*{\glsxtrpostnameacronym}{%
+       \space\rm\glsentrylong{\glscurrententrylabel}, %
+}
+%\renewcommand*{\glsxtrpostdescabbreviation}{%
+% \space (initialism)%
+%}
+
 \usepackage{glossary-mcols}
 \pdfstringdefDisableCommands{%
        \def\glsxtrlong#1{}%
        \def\glsxtrlongpl#1{}%
        \def\glsxtrshort#1{}%
        \def\glsxtrshortpl#1{}%
-       \def\acrfull#1{}%
-       \def\acrfullpl#1{}%
        \def\Glsxtrlong#1{}%
        \def\Glsxtrlongpl#1{}%
        \def\Glsxtrshort#1{}%
        \def\Glsxtrshortpl#1{}%
-       \def\Acrfull#1{}%
-       \def\Acrfullpl#1{}%
        \def\gls#1{}%
        \def\glspl#1{}%
-       \def\glsentrytext#1{}%
        \def\Gls#1{}%
        \def\Glspl#1{}%
-       \def\Glsentrytext#1{}%
-       \def\titlecap#1{}%
        \def\MakeUppercase#1{}%
 }
 
 % Initialize the glossaries
 \makeglossaries%
 
-% Acronym
-\newcommand{\myacronym}[4][]{%
-%      \newacronym[type=\glsdefaulttype,#1]{#2}{#3}{#4}
-       \newabbreviation[#1]{#2}{#3}{#4}
-}
-\myacronym[category=noexpand]{3COWS}{3cows}{The three ``CO'' (Composability, Comprehensibility, Correctness) winter school}
-\myacronym{ADC}{adc}{analog-to-digital converter}
-\myacronym{ADT}{adt}{algebraic data type}
-\myacronym{AST}{ast}{abstract syntax tree}
-\myacronym{API}{api}{application programming interface}
-\myacronym{ARDSL}{ardsl}{\gls{ARDUINO} \glsxtrshort{DSL}}
-\myacronym[category=noexpand]{CEFP}{cefp}{Central European \glsxtrlong{FP} School}
-\myacronym{CRS}{crs}{\gls{CLEAN} Raspberry Pi system}
-\myacronym{CRTS}{crts}{\gls{CLEAN} Raspberry Pi temperature sensor}
-\myacronym{CWS}{cws}{\gls{CLEAN} \gls{WEMOS} system}
-\myacronym{CWTS}{cwts}{\gls{CLEAN} \gls{WEMOS} temperature sensor}
-\myacronym{DHT}{dht}{digital humidity and temperature}
-\myacronym{DSL}{dsl}{domain-specific language}
-\myacronym{DVFS}{dvfs}{dynamic voltage and frequency scaling}
-\myacronym{ECO2}{eCO\textsubscript{2}}{equivalent carbon dioxide}
-\myacronym{EDSL}{edsl}{embedded \glsxtrlong{DSL}}
-\myacronym[prefixfirst={a\ },prefix={an\ }]{FP}{fp}{functional programming}
-\myacronym[prefixfirst={a\ },prefix={an\ }]{FRP}{frp}{functional reactive programming}
-\myacronym[prefixfirst={a\ },prefix={an\ }]{FPGA}{fpga}{field-programmable gate array}
-\myacronym{GADT}{gadt}{generalised \glsxtrshort{ADT}}
-\myacronym{GHC}{ghc}{Glasgow \gls{HASKELL} Compiler}
-\myacronym{GPIO}{gpio}{general-purpose \glsxtrlong{IO}}
-\myacronym{GPL}{gpl}{general-purpose language}
-\myacronym{GRS}{grs}{graph rewriting system}
-\myacronym{GUI}{gui}{graphical \glsxtrlong{UI}}
-\myacronym{HOAS}{hoas}{high-order abstract syntax}
-\myacronym{IOT}{Io\kern-.3mmT}{internet of things}
-\myacronym[category=noexpand]{IDE}{ide}{integrated development environment}
-\myacronym[category=noexpand]{IO}{i/o}{input/output}
-\myacronym{IR}{ir}{intermediate representation}
-\myacronym{ISR}{isr}{interrupt service routine}
-\myacronym{LEAN}{lean}{language of East-Anglia and Nijmegen}
-\myacronym[category=noexpand,prefixfirst={a\ },prefix={an\ }]{LED}{led}{light-emitting diode}
-\myacronym[category=noexpand]{OLED}{oled}{organic \glsxtrshort{LED}}
-\myacronym[category=noexpand]{OS}{os}{operating system}
-\myacronym{OTA}{ota}{over-the-air}
-\myacronym{PIR}{pir}{passive infrared}
-\myacronym{PFRP}{p-frp}{priority-based \glsxtrshort{FRP}}
-\myacronym{PRS}{prs}{\gls{PYTHON} Raspberry Pi system}
-\myacronym{PWS}{pws}{\gls{MICROPYTHON} \gls{WEMOS} system}
-\myacronym{PRTS}{prts}{\gls{PYTHON} Raspberry Pi temperature sensor}
-\myacronym{PWTS}{pwts}{\gls{MICROPYTHON} \gls{WEMOS} temperature sensor}
-\myacronym{QDSL}{qdsl}{quoted \glsxtrshort{DSL}}
-\myacronym[category=noexpand]{RAM}{ram}{random-access memory}
-\myacronym{RFID}{rfid}{radio-frequency identification}
-\myacronym{RTOS}{rtos}{real-time \glsxtrshort{OS}}
-\myacronym{RTS}{rts}{run-time system}
-\myacronym[prefixfirst={a\ },prefix={an\ }]{SDS}{sds}{shared data source}
-\myacronym[prefixfirst={a\ },prefix={an\ }]{SN}{sn}{sensor network}
-\myacronym{SLOC}{sloc}{source lines of code}
-\myacronym{TH}{th}{Template \gls{HASKELL}}
-\myacronym[category=noexpand]{TCP}{tcp}{transmission control protocol}
-\myacronym{TOP}{top}{task-oriented programming}
-\myacronym{TOSD}{tosd}{task-oriented software development}
-\myacronym{TRS}{trs}{term rewriting system}
-\myacronym{TTH}{tth}{typed \glsxtrlong{TH}}
-\myacronym{TVOC}{tvoc}{total volatile organic compounds}
-\myacronym{UI}{ui}{user interface}
-\myacronym{UOD}{uod}{universe of discourse}
-\myacronym{UOG}{uog}{University of Glasgow}
-\myacronym{VM}{vm}{virtual machine}
+% Acronyms
+\newacronym[description={the CO\textsubscript{2} concentration calculated from \glsxtrshort{TVOC} measurements}]{ECO2}{(eCO\textsubscript{2})}{equivalent carbon dioxide}
+\newacronym[category=scabbr,description={a open data interchange format using human readable text}]{JSON}{{\scshape JSON}}{(JavaScript object notation)}
+\newacronym[category=scabbr,description={a publish-subscribe network protocol designed for resource constrained devices}]{MQTT}{{\scshape MQTT}}{(MQ telemetry transport)}
+\newacronym[description={a pure lazy \glsxtrlong{FP} language based on graph rewriting}]{CLEAN}{Clean}{(Clean language of East-Anglia and Nijmegen)}
+\newacronym[description={a simple serial communication protocol often used to connect sensors to microcontrollers}]{I2C}{I\textsuperscript{2}C}{(inter-integrated circuit)}
+\newacronym[category=scabbr,description={passive infrared}]{PIR}{{\scshape PIR}}{}
+\newacronym[category=scabbr,description={task-oriented programming}]{TOP}{{\scshape TOP}}{}
+\newacronym[category=scabbr,description={the three ``CO'' (composability, comprehensibility, correctness) of working software}]{3COWS}{{\scshape 3COWS}}{}
+
+% Initialisms
+\newabbreviation{ADC}{adc}{analog-to-digital converter}
+\newabbreviation{ADT}{adt}{algebraic data type}
+\newabbreviation{AST}{ast}{abstract syntax tree}
+\newabbreviation{API}{api}{application programming interface}
+\newabbreviation{ARDSL}{ardsl}{\gls{ARDUINO} \glsxtrshort{DSL}}
+\newabbreviation[category=noexpand]{CEFP}{cefp}{Central European \glsxtrlong{FP} School}
+\newabbreviation{CRS}{crs}{\gls{CLEAN} Raspberry Pi system}
+\newabbreviation{CRTS}{crts}{\gls{CLEAN} Raspberry Pi temperature sensor}
+\newabbreviation{CWS}{cws}{\gls{CLEAN} \gls{WEMOS} system}
+\newabbreviation{CWTS}{cwts}{\gls{CLEAN} \gls{WEMOS} temperature sensor}
+\newabbreviation{DHT}{dht}{digital humidity and temperature}
+\newabbreviation{DSL}{dsl}{domain-specific language}
+\newabbreviation{DVFS}{dvfs}{dynamic voltage and frequency scaling}
+\newabbreviation{EDSL}{edsl}{embedded \glsxtrlong{DSL}}
+\newabbreviation[prefixfirst={a\ },prefix={an\ }]{FP}{fp}{functional programming}
+\newabbreviation[prefixfirst={a\ },prefix={an\ }]{FRP}{frp}{functional reactive programming}
+\newabbreviation[prefixfirst={a\ },prefix={an\ }]{FPGA}{fpga}{field-programmable gate array}
+\newabbreviation{GADT}{gadt}{generalised \glsxtrshort{ADT}}
+\newabbreviation{GHC}{ghc}{Glasgow \gls{HASKELL} Compiler}
+\newabbreviation{GPIO}{gpio}{general-purpose \glsxtrlong{IO}}
+\newabbreviation{GPL}{gpl}{general-purpose language}
+\newabbreviation{GRS}{grs}{graph rewriting system}
+\newabbreviation{GUI}{gui}{graphical \glsxtrlong{UI}}
+\newabbreviation{HOAS}{hoas}{high-order abstract syntax}
+%\newabbreviation{IOT}{Io\kern-.3mmT}{internet of things}
+\newabbreviation{IOT}{iot}{internet of things}
+\newabbreviation[category=noexpand]{IDE}{ide}{integrated development environment}
+\newabbreviation[category=noexpand]{IO}{i/o}{input/output}
+\newabbreviation{IR}{ir}{intermediate representation}
+\newabbreviation{ISR}{isr}{interrupt service routine}
+\newabbreviation[category=noexpand,prefixfirst={a\ },prefix={an\ }]{LED}{led}{light-emitting diode}
+\newabbreviation[category=noexpand]{OLED}{oled}{organic \glsxtrshort{LED}}
+\newabbreviation[category=noexpand]{OS}{os}{operating system}
+\newabbreviation{OTA}{ota}{over-the-air}
+\newabbreviation{PFRP}{p-frp}{priority-based \glsxtrshort{FRP}}
+\newabbreviation{PRS}{prs}{\gls{PYTHON} Raspberry Pi system}
+\newabbreviation{PWS}{pws}{\gls{MICROPYTHON} \gls{WEMOS} system}
+\newabbreviation{PRTS}{prts}{\gls{PYTHON} Raspberry Pi temperature sensor}
+\newabbreviation{PWTS}{pwts}{\gls{MICROPYTHON} \gls{WEMOS} temperature sensor}
+\newabbreviation{QDSL}{qdsl}{quoted \glsxtrshort{DSL}}
+\newabbreviation[category=noexpand]{RAM}{ram}{random-access memory}
+\newabbreviation{RFID}{rfid}{radio-frequency identification}
+\newabbreviation{RTOS}{rtos}{real-time \glsxtrshort{OS}}
+\newabbreviation{RTS}{rts}{run-time system}
+\newabbreviation[prefixfirst={a\ },prefix={an\ }]{SDS}{sds}{shared data source}
+\newabbreviation[prefixfirst={a\ },prefix={an\ }]{SN}{sn}{sensor network}
+\newabbreviation{SLOC}{sloc}{source lines of code}
+\newabbreviation[description={a synchronous serial communication protocol often used to connect sensors to microcontrollers}]{SPI}{SPI}{Serial Peripheral Interface}
+\newabbreviation{TH}{th}{Template \gls{HASKELL}}
+\newabbreviation[category=noexpand]{TCP}{tcp}{transmission control protocol}
+\newabbreviation{TOSD}{tosd}{task-oriented software development}
+\newabbreviation{TRS}{trs}{term rewriting system}
+\newabbreviation{TTH}{tth}{typed \glsxtrlong{TH}}
+\newabbreviation{TVOC}{tvoc}{total volatile organic compounds}
+\newabbreviation{UI}{ui}{user interface}
+\newabbreviation{UOD}{uod}{universe of discourse}
+\newabbreviation{UOG}{uog}{University of Glasgow}
+\newabbreviation{VM}{vm}{virtual machine}
 
 % Glossaries
 \newglossaryentry{ABC}{%
        name=ABC,
-       description={\gls{CLEAN}'s intermediate graph-rewriting language},
+       description={\gls{CLEAN}'s intermediate graph-rewriting language},
 }
 \newglossaryentry{MTASK}{%
        name=mTask,
-       description={a \glsxtrshort{TOP} \glsxtrshort{EDSL} for edge devices integrated with the \gls{ITASK} system},
+       description={a \glsxtrshort{TOP} \glsxtrshort{EDSL} for edge devices integrated with the \gls{ITASK} system},
 }
 \newglossaryentry{ITASK}{%
        name=iTask,
-       description={a \glsxtrshort{TOP} \glsxtrshort{EDSL} for creating distributed multi-user collaborative web applications},
+       description={a \glsxtrshort{TOP} \glsxtrshort{EDSL} for creating distributed multi-user collaborative web applications},
 }
 \newglossaryentry{TOPHAT}{%
        name=TopHat,
-       description={- a \glsxtrshort{TOP} language designed to formally capture the essence of \gls{TOP}}
-}
-\newglossaryentry{CLEAN}{%
-       name=Clean,
-       description={- Clean \glsxtrlong{LEAN}, a pure lazy \glsxtrlong{FP} language based on graph rewriting}
+       description={a \glsxtrshort{TOP} language designed to formally capture the essence of \gls{TOP}}
 }
 \newglossaryentry{HASKELL}{%
        name=Haskell,
-       description={a pure lazy \glsxtrlong{FP} language designed by a committe as a concept language}
+       description={a pure lazy \glsxtrlong{FP} language designed by a committe as a concept language}
 }
 \newglossaryentry{HASKELL98}{%
        name=Haskell98,
-       description={a standardised version of \gls{HASKELL}},
+       description={a standardised version of \gls{HASKELL}},
 }
 \newglossaryentry{ARDUINO}{%
        name=Arduino,
-       description={a widely used framework for programming microcontrollers}
+       description={a widely used framework for programming microcontrollers}
 }
 \newglossaryentry{MBED}{%
        name=mbed,
-       description={a widely used framework for programming microcontrollers designed for ARM cortex-M}
+       description={a widely used framework for programming microcontrollers designed for ARM cortex-M}
 }
 \newglossaryentry{CPP}{
        name=C\texttt{++},
-       description={a general-purpose imperative programming language based on \gls{C}}
+       description={a general-purpose imperative programming language based on \gls{C}}
 }
 \newglossaryentry{C}{
        name=C,
-       description={- a general-purpose imperative programming}
-}
-\newglossaryentry{I2C}{
-       name=I\textsuperscript{2}C,
-       description={(Inter-Integrated Circuit) {-} a simple serial communication protocol often used to connect sensors to microcontrollers}
+       description={a general-purpose imperative programming}
 }
 \newglossaryentry{WIFI}{
        name=Wi-Fi,
-       description={- is a family of wireless network protocols commonly used for local area networking}
-}
-\newglossaryentry{SPI}{
-       name=SPI,
-       description={(Serial Peripheral Interface) {-} a synchronous serial communication protocol often used to connect sensors to microcontrollers}
+       description={is a family of wireless network protocols commonly used for local area networking}
 }
 \newglossaryentry{TINYML}{
        name=TinyML,
-       description={a deep learning framework for microcontrollers}
+       description={a deep learning framework for microcontrollers}
 }
 \newglossaryentry{PYTHON}{
        name=Python,
-       description={a multi-paradigm interpreted programming language}
+       description={a multi-paradigm interpreted programming language}
 }
 \newglossaryentry{MICROPYTHON}{
        name=MicroPython,
-       description={a \gls{PYTHON} implementation tailored for microcontrollers}
+       description={a \gls{PYTHON} implementation tailored for microcontrollers}
 }
 \newglossaryentry{FREERTOS}{
        name=FreeRTOS,
-       description={an open-source \glsxtrshort{RTOS} for microcontrollers}
+       description={an open-source \glsxtrshort{RTOS} for microcontrollers}
 }
 \newglossaryentry{ONEWIRE}{
        name=1-wire,
-       description={- a simple single wire communication protocol often used to connect sensors to microcontrollers}
-}
-\newglossaryentry{JSON}{
-       name=JSON,
-       description={(JavaScript Object Notation) {-} a open data interchange format using human readable text}
-}
-\newglossaryentry{MQTT}{
-       name=MQTT,
-       description={(MQ Telemetry Transport) {-} a publish-subscribe network protocol designed for resource constrained devices}
+       description={a simple single wire communication protocol often used to connect sensors to microcontrollers}
 }
 \newglossaryentry{WEMOS}{
        name=WEMOS,
-       description={a popular ESP8266 microcontroller based prototyping platform supporting \gls{ARDUINO}.}
+       description={a popular ESP8266 microcontroller based prototyping platform supporting \gls{ARDUINO}.}
 }