Morse is een gecodeerde communicatievorm bestaande uit signalen die met tussenpozen worden uitgezonden. Vastgelegde combinaties van deze signalen stellen dan de verschillende letters, leestekens en cijfers voor. Deze morsecode werd in 1835 uitgevonden en ontwikkeld door Samuel Morse, met als doel ze te gebruiken voor het verzenden van telegrafische berichten. Met een telegraaf (zie figuur) kon men namelijk enkel kiezen tussen twee toestanden: sleutel naar beneden (= stroom) of sleutel naar boven (= geen stroom) en tijdsduur (kort of lang). Telegrafie wordt algemeen beschouwd als een voorloper van de latere digitale communicatie. Merk op dat in snelheidswedstrijden tussen ervaren morsecodeoperatoren en experts in het verzenden van SMS berichten, morsecode steevast als overwinnaar uit de bus komt.

Morse apparaat

In de internationale morsecode worden korte signalen genoteerd met een punt (.) en lange signalen met een koppelteken (-).

Opgave

Het bestand morse.txt1 bevat de vertaling naar morsecode van een lijst van woorden. Op elke regel staat de morsecode van één enkel woord (waarbij geen rekening werd gehouden met de tussenpozen), gevolgd door een spatie en het woord zelf tussen ronde haakjes. Gevraagd wordt:

  1. Bepaal reguliere expressies voor elk van onderstaande verzamelingen. Daarbij staat $$\mathcal{M}$$ voor de verzameling van alle woorden in morsecode. Probeer de reguliere expressies bovendien zo kort mogelijk te houden.

    • $$\alpha = \{ m \in \mathcal{M}\,|\,$$ $$m$$ bevat een oneven aantal koppeltekens $$\}$$

    • $$\beta = \{ m \in \mathcal{M}\,|\,$$ $$m$$ bestaat uit een alternerende reeks van symbolen $$\}$$

    • $$\gamma = \{ m \in \mathcal{M}\,|\,$$ de eerste helft van $$m$$ is gelijk aan de tweede helft $$\}$$

    • $$\delta = \{ m \in \mathcal{M}\,|\,$$ twee gelijke symbolen worden in $$m$$ nooit gevolgd door twee keer het andere symbool $$\}$$

    Gebruik een commando uit de grep familie om enkel die regels van het bestand morse.txt2 te selecteren met een woord in morsecode dat tot de opgegeven verzameling behoort.

  2. Beschouw de verzamelingen $$\alpha$$, $$\beta$$, $$\gamma$$ en $$\delta$$ zoals hierboven gedefinieerd. Gebruik nu deze verzamelingen om op de volgende manier een boodschap bestaande uit vier woorden te achterhalen:

    • het eerste woord staat op de unieke regel met woord in morsecode uit verzameling $$\alpha \cap \beta$$

    • het tweede woord staat op de unieke regel met woord in morsecode uit verzameling $$\beta \cap \gamma$$

    • het derde woord staat op de unieke regel met woord in morsecode uit verzameling $$\gamma \cap \delta$$

    • het vierde woord staat op de unieke regel met woord in morsecode uit verzameling $$\delta \cap \alpha$$

    Geef telkens een Unix commando dat elk van deze woorden opzoekt in het bestand en uitschrijft naar standaard uitvoer (zonder het patroon dat aan het woord voorafgaat). Hierbij is het dus niet toegelaten om het woord letterlijk uit te schrijven (bv. echo xxx).