Wat is typeveiligheid?
Type veiligheid is een onderdeel van computerprogrammering die helpt bij het voorkomen van het ontstaan van bugs die verschijnen wanneer een programma wordt uitgevoerd. Als de veiligheid van het type laks is, is de kans groot dat er enkele bugs zullen zijn, die een verscheidenheid aan fouten kunnen veroorzaken. De meest gebruikelijke manier om ervoor te zorgen dat deze fouten niet optreden, is door sterke codering te gebruiken. Hoewel veel programmeertalen inherent functies hebben om de betrouwbaarheid van het programmeren te garanderen en om fouten te voorkomen, kan een slechte codering deze functies machteloos maken. Er zijn twee manieren waarop een programmeertaal deze fouten kan controleren - statisch of dynamisch - en beide kunnen effectief zijn.
Fouten komen veel voor in programma's en codering en, met typeveiligheid, treedt de fout specifiek op bij verschillende gegevenstypen die niet goed zijn gereguleerd. De fouten die kunnen optreden, variëren van nominaal tot ernstig, maar de meeste zijn meestal ernstig. Dit kan het programma afsluiten, of de slechte codering kan ergere problemen veroorzaken die de codering nutteloos en gefragmenteerd kunnen maken.
Er zijn veel manieren om typeveiligheid te garanderen, maar een van de gemakkelijkere en meer gebruikelijke manieren is het gebruik van sterke typecodering. In tegenstelling tot zachtere coderingsmethoden, waardoor de programmeertaal onhandige codering onjuist kan definiëren, is sterke codering zeer direct. Sterke typecodering maakt ook gebruik van regels en voorschriften om ervoor te zorgen dat de codering niet onjuist wordt gedefinieerd en dat er weinig fouten zijn.
Een inbreuk op de veiligheid van het type kan leiden tot grote problemen, dus veel programmeertalen hebben functies overgenomen om deze problemen te testen en te elimineren - of om programmeurs op deze problemen te wijzen. Voordat de programmering doorgaat naar runtime, zal de taal controleren op veel voorkomende fouten en zal de runtime-lancering meestal worden afgebroken als er fouten worden gedetecteerd. Tegelijkertijd kunnen deze functies nutteloos zijn als de programmeur een zeer slechte codering maakt. De taal kan de algemene tekenen van typeveiligheid niet herkennen, dus het programma wordt uitgevoerd, ook al is er een fout opgetreden.
Er zijn twee methoden om mogelijke veiligheidsproblemen van het type op te vangen, en deze zijn alleen van toepassing op programmeertalen die automatisch op fouten controleren. Statische methoden zoeken eenvoudig naar de veelvoorkomende tekenen van een probleem wanneer het programma wordt uitgevoerd. De andere methode, dynamisch, controleert de code grondig en zoekt naar de rol van elk codeerelement in het deeltjesprogramma. Vervolgens wordt het hele programma doorzocht om te zien of er een speciale coderingsuitzondering bestaat die een fout kan zijn. Vervolgens laat het programma het programma passeren of stopt het.