Waarom assembler?

Het gebruik van assembler als programmeertaal is niet populair meer. Over het algemeen geeft men de voorkeur aan derde of vierde generatie talen.

Meestal - voor "gewone" applicaties - is dit volkomen terecht. Er zijn echter wel degelijk situaties, waarin het wijs is om de argumenten voor en tegen eens goed op een rij te zetten.

Niet alleen berusten de argumenten tegen het gebruik van assembler grotendeels op vooroordelen, ook zijn de argumenten voor het gebruik van assembler relatief onbekend. Wie de vooroordelen tegen assembler wel kent, maar de voordelen ervan niet, kan moeilijk een objectieve beslissing nemen ten aanzien van de taalkeuze.

Wel blijft natuurlijk altijd gelden wat voor elke programmeertaal geldt: zonder goed opgeleide mensen kom je nergens. Zonder documentatie blijf je nergens.

Hieronder volgt eerst een overzicht van de belangrijkste voordelen van assembler. Vervolgens een poging om de vooroordelen te nuanceren. We eindigen met een korte samenvatting.

De voordelen van assembler.

Het werken met assembler biedt u een aantal mogelijkheden, die 3GL- en 4GL-programmeurs niet (altijd) tot hun beschikking hebben.

De vooroordelen tegen assembler.

Over het werken met assembler bestaan een aantal vooroordelen. De belangrijkste daarvan zijn wel:

  1. Gestructureerd programmeren kan niet in assembler.
    Onjuist, in feite biedt assembler op dit terrein zelfs meer faciliteiten dan de meeste 3GLs.
  2. Onderhoud aan assembler-programmatuur kost veel meer tijd dan bij een 3GL.
    In de tijd dat 3GLs werden geïntroduceerd, was dit wellicht waar. Nu nog maar zeer ten dele.
  3. Assembler is een omslachtige taal en moeilijk te leren.
    Assembler is inderdaad iets minder doorzichtig voor de leek dan een taal als Cobol. Een taal als C of C++ daarentegen is weer veel moeilijker te leren.
Ad 1.
Gestructureerd programmeren kan niet in assembler.
Het aanbrengen van structuur in programma's is in de eerste plaats een kwestie van stijl en vakmanschap. Als de gebruikte taal goede faciliteiten biedt is dat mooi meegenomen.
Ad 2.
Onderhoud aan assembler-programmatuur kost veel meer tijd dan bij een 3GL.
Toen 3GLs geïntroduceerd werden, was er een grote basis van assembler-programma's. Doordat gestructureerd programmeren toen nog een nieuwe ontwikkeling was lieten deze programma's vaak te wensen over aan structuur. In assembler kunt u - net als in andere talen - zo veel of zo weinig structuur aanbrengen als u zelf wilt. Met alle consequenties voor de onderhoudbaarheid.
In assembler heeft u wel meer mogelijkheden dan in de meeste 3GLs om er een rommeltje van te maken. Maar dank zij de macro-taal heeft u in assembler ook weer aanzienlijk meer mogelijkheden voor het aanbrengen van structuur dan in enige andere taal.
 
Verder geldt natuurlijk de kwestie van vakmanschap. De 3GL-programmeur die assembler "er bij doet" kan zich niet meten met de vakman. Dat vertaalt zich niet alleen in de benodigde tijd, maar ook in de kwaliteit van de geproduceerde code. Probleem is dan natuurlijk wel, hoe u aan ervaren vakmensen komt. Maar dat geldt - zeker op dit moment - voor elke taal.
 
Als we voor de benodigde mankracht een eerlijke vergelijking willen maken tussen assembler en 3GLs dan moeten we dus niet alleen vakman naast vakman zetten, maar ook de ouderdom van de programmatuur (lees: mate van structuur) in ogenschouw nemen, alsmede de kwaliteit van de beschikbare documentatie.
 
Onze ervaring is dat u in de nieuwbouw dan zo'n 10 tot 20 procent extra mankracht moet rekenen voor assembler. Bij onderhoud is het verschil te zeer afhankelijk van de mate waarin de programmatuur gedocumenteerd en gestructureerd is om enig cijfer te kunnen geven.
 
Een voorbeeld: een van onze klanten draait naast een door ons ontwikkeld assembler-module een Cobol-variant met dezelfde functionaliteit. Bij de laatste paar modificaties was de assembler-programmeur in éé n dag klaar; de Cobol-programmeur had er drie dagen voor nodig. Hoewel dit een bijzonder voorval zou kunnen zijn, toont het wel aan dat onderhoud aan assembler programmatuur niet per definitie meer tijd vergt dan onderhoud aan 3GL-programmatuur.
 
Ad 3.
Assembler is een omslachtige taal en moeilijk te leren.
Als u van "leken" afhankelijk bent, dan moet u zeker niet voor assembler kiezen. Zoals met elke andere taal creëert u dan uw eigen moeilijkheden.
Maar er zijn natuurlijk ook vakmensen beschikbaar. Die beheersen niet alleen de kunst van het assembleren, die hebben ook grondige kennis van de macro-faciliteiten van de assembler, waarmee snel, efficiënt en netjes coderen binnen handbereik komt.

Samenvatting.

De argumenten voor en tegen kunnen als volgt worden samengevat:

Alles bij elkaar luidt ons standaard-advies: gebruik geen assembler als het niet nodig is. Maar als er wel aanleiding toe is, loop er dan niet voor weg; assembler is niet eng. En als u dan voor assembler kiest, bouw dan alleen die modules in assembler, die daar baat bij hebben. Het grootste deel van uw project kunt u prima in uw vertrouwde 3GL of 4GL bouwen.

Ten slotte is het voor sommige zaken domweg niet mogelijk een andere taal te gebruiken dan assembler. Dit geldt met name voor veel exits.
Niet alleen het operating system, maar ook een groot aantal standaard produkten zijn voorzien van de mogelijkheid om exits te installeren, teneinde e.e.a. op uw eigen behoeften/specificaties af te stemmen. Voor de meeste exits geldt, dat coderen in assembler domweg onvermijdelijk is. Met de hierboven gegeven argumenten hoeft dat dus geen onoverkomelijk probleem (meer) te zijn.

 

Deze site is aangesloten bij WebRing.
Bekijkt u gerust de lijst van mainframe-gerelateerde sites.
Rennende
    Tyrannosaurus Rex Dino's zijn niet dood. Ze zijn gezond en wel en leven in computer-centra overal om ons heen. Zij spreken in tongen en doen wonderbare magie met computers. Pas op voor de dino! En voor het geval u zit te wachten op het definitieve einde van deze dino's: onthoud dat dino's de wereld 155 miljoen jaren hebben geregeerd!
Dino's en andere anachronismen
[ Aanmelden | Ring Overzicht | Willekeurig | << Vorige | Volgende >> ]
 

Naar de voordelen van assembler.
Naar de vooroordelen tegen assembler.
Naar de samenvatting.

Naar de nederlandse homepage.
Naar de algemene homepage.



Hieronder vindt u het logo van onze sponsor en logos van web-standaarden waaraan deze web-pagina voldoet.