Programmeertalen & programmeren

Uit De Vliegende Brigade
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Toch aardig om af en toe de basis 's te reviewen:

Imperatieve & declaratieve programmeertalen

Imperatief en declaratief zijn twee programmeerparadigma's. Ze zijn niet 100% van elkaar te scheiden, en je hebt ook geen taal die 100% imperatief of declaratief is:

  • Imperatief programmeren is een programmeerparadagima, dat statements gebruikt om de status van een programma te wijzigen. Maw., met elk statement gebeurt er iets. Imperatieve programmeertalen beschrijven hoe iets gebeurt.
  • Declaratief programmeren is een paradigma, waarbij wordt omschreven wat het op te lossen probleem is. De basiselementen van een declaratieve taal zijn daarom geen opdrachten, maar beschrijvingen.

Voorbeelden van imperatieve talen

  • Boodschappenlijstje
  • For-loop?
  • Machinetaal, vooral van RISC-computers, waarbij je door de afwezigheid van nanocode, heel veel zelf moet doen, totaan het onthouden van de overloop op de MC 6510. CISC-machinetalen zullen in het algemeen ook heus wel als imperatief worden beschouwd :)
  • Python [1]

Voorbeelden van declaratieve talen

  • Logica & wiskunde
  • Opmaaktalen zoals HTML
  • QBE [2]
  • SQL: Ik denk dat dit is, waarom ik in het begin zo'n moeite had met SQL: In plaats van dat je in een loop precies specificeert wat er bit voor bit moet gebeuren, schrijf je vooral randvoorwaardes. Het feit dat SQL opereert op dataverzamelingen en niet enkel op losse elementen, is hier vermoedelijk een voorbeeld van
  • ER-diagrammen
  • UML-diagrammen
  • Zuivere object oriënted-talen
  • 4GL's?

Procedures & procedureel programmeren

  • Procedureel programmeren betekent zo'n beetje hetzelfde als imperatief programmeren, omdat je overwegend beschrijft hoe iets uitgevoerd moet worden
  • Ik geloof dat een procedure practisch gezien hetzelfde is als een statement

Onduidelijk geval: Is een SQL-sproc (stored procedure) zoals call mijn_supersproc(); een statement? call is zeker een statement, maar mijn_supersproc() is een argument → Boeit niet.

Statement

In imperatieve talen, is een statement de kleinste eenheid die de toestand van de programma wijzigt. Het is wat ik intuïtief ervaar als een commando. Die dingen die syntax errors geven, of function not found ofzo, als je ze verkeert spelt. Het kunnen ook 'samenhangende' dingen zijn zoals if-then-else-end-if-cases.

Uitdrukking of expressie

Een uitdrukking of expressie is een combinatie van waardes en/of variabelen en/of operatoren en/of functies die geëvalueerd wordt naar een waarde.

SQL-voorbeelden:

-- Expressie
-- =========
--
-- Het argument 1+2 is een expressie die geëvalueerd wordt alvorens verwerkt te worden door het select-statement
--
select 1+2;

-- Geen expressie
-- ==============
--
-- Geen expressie, want er wordt nix geëvalueeerd
--
call mijn_supersproc(input1, input2, input3);

Misschien het handigste voorbeeld: Een reguliere expressie is een expressie - Er wordt immers geëvalueerd.

Functies

Met functies wordt rondom programmeren, hetzelfde bedoeld als in de wiskunde. Dus een relatie tussen waardes uit een domein en waardes uit een bereik of codomein, met maximaal één waarde in het bereik per waarde uit het domein.

Operatoren

Met het begrip operatoren wordt rondom programmeren, hetzelfde bedoeld als in de wiskunde. Operatoren en functies zijn zo'n beetje hetzelfde.

Bronnen