Dit is de samenvatting van het negende hoofdstuk van het vak Structuur van Computerprogramma's II. In deze samenvatting werd zowel alle relevante informatie uit de slides als informatie uit eigen notities opgenomen.
Hoofdstuk 5c: Structured Control Flow
Constructs
1 C supports Unstructured Control Flow
• Typically, assembly languages support three kind of instructions:
o Pass control to next instruction ( eg. add, sub, mov, cmp)
o Pass control to another instruction (at memory location indicated by operand) (jmp
<location>)
o Conditional jump depending on status of set of condition codes
1.1 goto Statement
• Allows to jump unconditionally to an arbitrary part of your
code within the same function identified using a label
2 Spaghetti Code
• Excess use of goto creates spaghetti code.
• Using goto makes code harder to read
and debug.
2.1 Structured Control Flow
• Any code that uses goto can be written
without using one.
• Replace evil goto by structured constructs
such as:
o for, while, break, return,
continue, do.. while, if.. then..else
2.2 goto Use Case
• Error handling and resource cleanup
See code →
1
, 3 Error handling in C
• Programmers use “certain values” that differ from the return values of normal executions to
check and propagate errors.”
3.1 What if we use exceptions to handle errors?
• In languages like Java or Scala exceptions are actually designed to be used as control flow
structures.
3.1.1 Non-local control flow
4 How to transpose
high-level control flow
constructs like
exceptions to C?
4.1 Continuation
• First, it requires to control “the next thing to do after the expression or the statement has
been executed”
o Continuation
o “A continuation represents the computational process at a given point in the process
execution”
4.1.1 Continuations by Example
• The continuation of an expression or a statement is the things that remain to be done after
“doing” that expression or statement
4.1.2 How can we represent continuations?
• Conclusion: the continuation of an
expression is a function that consumes
the value of that expression and
proceeds the computation with this
value
2
Voordelen van het kopen van samenvattingen bij Stuvia op een rij:
√ Verzekerd van kwaliteit door reviews
Stuvia-klanten hebben meer dan 700.000 samenvattingen beoordeeld. Zo weet je zeker dat je de beste documenten koopt!
Snel en makkelijk kopen
Je betaalt supersnel en eenmalig met iDeal, Bancontact of creditcard voor de samenvatting. Zonder lidmaatschap.
Focus op de essentie
Samenvattingen worden geschreven voor en door anderen. Daarom zijn de samenvattingen altijd betrouwbaar en actueel. Zo kom je snel tot de kern!
Veelgestelde vragen
Wat krijg ik als ik dit document koop?
Je krijgt een PDF, die direct beschikbaar is na je aankoop. Het gekochte document is altijd, overal en oneindig toegankelijk via je profiel.
Tevredenheidsgarantie: hoe werkt dat?
Onze tevredenheidsgarantie zorgt ervoor dat je altijd een studiedocument vindt dat goed bij je past. Je vult een formulier in en onze klantenservice regelt de rest.
Van wie koop ik deze samenvatting?
Stuvia is een marktplaats, je koop dit document dus niet van ons, maar van verkoper lennyS. Stuvia faciliteert de betaling aan de verkoper.
Zit ik meteen vast aan een abonnement?
Nee, je koopt alleen deze samenvatting voor €3,48. Je zit daarna nergens aan vast.