Hoe Fortran naar Visual Basic te converteren?
Fortran was 's werelds eerste procedurele programmeertaal, en het bracht een hele reeks verbeteringen met zich mee in de kunst en wetenschap van programmeren. Het maakte het gemakkelijker dan ooit om wiskundige ideeën in machinetaal te vertalen. Sinds de release in 1957 zijn er echter veel andere talen op de voorgrond gekomen en is deze slechts voor beperkte doeleinden in gebruik gebleven. Visual Basic is een programmeertaal die alomtegenwoordig is in het besturingssysteem en de programma's van Microsoft, dus het integreren van Visual Basic-code is vaak veel gemakkelijker dan het integreren van Fortran-code. Als gevolg hiervan vindt u het misschien handig om oude Fortran-programma's te vertalen naar Visual Basic om toekomstige onderhoudbaarheid te bevorderen.
Stap 1
Open Microsoft Visual Basic .NET en maak een nieuw opdrachtregelproject. Er zou een venster moeten verschijnen met de hoofdsubroutine van het programma.
Stap 2
Open de Fortran-broncode. Begin met het vertalen van de subroutines in het Fortran-programma. Fortran-subroutines zien er als volgt uit:
SUBROUTINE mySubroutine(a, b, c) REAL :: a, b, c EINDE SUBROUTINE
Dezelfde subroutine in Visual Basic ziet er als volgt uit:
Sub mySubroutine (a als dubbel, b als dubbel, c als dubbel) End Sub
Zoals je kunt zien, veranderen de begin- en eindcode niet significant, maar REAL wordt Dubbel en wordt op elk argument afzonderlijk toegepast, in plaats van allemaal tegelijk.
Stap 3
Converteer de functies in uw programma. In Fortran ziet een functie er als volgt uit:
INTEGER FUNCTIE plus(a, b) INTEGER :: a, b plus = a + b EINDE FUNCTIE plus
Dezelfde functie in VB.NET ziet er als volgt uit:
Functie plus(a Als geheel getal, b Als geheel getal) Als geheel getal Retour a + b Eindfunctie
Het retourtype, dat wordt uitgedrukt vóór het FUNCTION-sleutelwoord in Fortran, komt aan het einde van de Function-regel in Visual Basic, en de argumenttypen verplaatsen zich van binnen de functie-body naar de Function-regel (net als bij subroutines). De return-waarde, die in Fortran wordt uitgedrukt als een toewijzingsstatement (met '=') waarvan de linkerwaarde de naam van de functie zelf is, wordt in VB.NET uitgedrukt met het Return-statement (zonder gelijkteken).
Stap 4
Vertaal alle bibliotheekfuncties die in de Fortran-code worden gebruikt naar hun equivalenten in Visual Basic. Zowel Fortran als VB worden geleverd met uitgebreide functiebibliotheken. U kunt Visual Basic-bibliotheekfuncties opzoeken door naar de Visual Basic-referentie van Microsoft Developer Network te gaan op http://msdn.microsoft.com/en-us/library/sh9ywfdk.aspx
Het kan zijn dat sommige bibliotheekfuncties geen directe equivalenten hebben - elke taal heeft een andere reeks sterke en zwakke punten. Als dit gebeurt, moet u uw eigen Visual Basic-functie schrijven om het gedrag van de Fortran-functie te reproduceren. Raadpleeg de Fortran-documentatie om er zeker van te zijn dat u het gedrag van de Fortran-functie begrijpt en nauwkeurig reproduceert. U kunt de Fortran-documentatie van Intel downloaden op http://www.intel.com/software/products/compilers/techtopics/for_prg.htm
Als u klaar bent met het converteren van uw programma, moet u het testen met het Fortran-programma. Voer de Fortran- en Visual Basic-programma's uit op dezelfde invoer en zorg ervoor dat ze hetzelfde resultaat opleveren. Test op zoveel verschillende ingangen als u kunt bedenken om er zeker van te zijn dat het geconverteerde programma trouw is gebleven aan het oude programma.