[Alg] Programmeren voor 64-bit platformen *

Pagina: 1
Acties:
  • 184 views sinds 30-01-2008
  • Reageer

  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
Hi,

Binnen een niet al te lange tijd zal 64-bit standaard zijn, maar ik wil H02 van dit jaar alvast overstappen met programmeren naar applicaties voor 64-bit platformen(Windows64, Linux etc)
Maar nou heb ik nog nooit eerder voor een 64 bit platform iets geprogrammeerd.
Ik vraag mij nu dus af wat er voor nodig is.
Ik denk zelf dat ik allereerst een 64-bit compiler nodig heb....volgens mij verschaft Intel al een hele goede.
Maar voor de rest weet ik eigenlijk niet wat het verschil is tussen programmeren voor 32-bit en 64-bit systemen.
Ik weet dat je bij 64 bit eindelijk grotere integer variabelen kan gebruiken en nog nauwkeurigere floats...maar dan houdt het ook op.

Dus mijn vraag is, wat is het wezenlijke verschil bij het programmeren voor 64-bit platformen ten opzichte van 32-bit platformen?

1) Heb ik speciale SDK's nodig of speciale API's....of kan ik gewoon dezelfde oude API's en docs blijven gebruiken.

2) Kan ik gewoon in c++ blijven schrijven of moet ik overstappen naar een taal zoals C64 of een andere specifiekere voor 64 bedoelde taal?

3) Hoe zit het met .NET....is dat al 64-bit compatible....en Java dan?

4) Ondersteunt Microsofts Visual C++(nieuwste versie) al 64 bit compiling?
Of heb ik een totaal andere compiler nodig?

5) Zijn er wezenlijke verschillen voor de programmeur als hij aan het programmeren is...merkt de gemiddelde programmeur tijdens het coden wel eens dat dingen anders zijn of is er geen verschil?
Hiermee bedoel ik dingen die anders geschreven moeten worden dan als je het in/voor 32-bit had moeten schrijven.

6) Zijn er nog andere verschillen?

[ Voor 12% gewijzigd door Arcane Apex op 06-05-2004 19:52 ]


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Het lijkt me verstandig om gewoon bij 32 bits systemen te blijven. Als je deze vragen nog hebt dan is 64 bits voor jou nor irrelevant. Evengoed, de vragen:

1) Heb ik speciale SDK's nodig of speciale API's....of kan ik gewoon dezelfde oude API's en docs blijven gebruiken.
Ja. Alle pointers zijn twee keer zo groot. De consequentie is natuurlijk dat als je maar 32 bits reserveert voor een pointer, en een API geeft je 64 bits, dan past dat natuurlijk niet. Zo'n nieuwe API kan overigens in dezelfde file zitten als de oude.

C stamt uit het 16 bits tijdperk en is niet veranderd voor 32 bits, en C++ werkt zonder enig probleem op 16 en 32 bits systemen. De grootste verandering is dat nieuwe compilers een 64 bits integer hebben (C "long long", C++ zo goed als zeker ook)

3) Nee, en nee, maar irrelevant. Beide zijn abstracties van de onderliggende hardware. De floats op een PC zijn ongelijk aan de Java floats, maar dat heeft ook niet gehinderd.

4) De losse compiler wel, de IDE niet (dacht ik). Schrijf je programma in 32 bits mode, met 64 bits warnings, en je kunt 99% van het werk toch in de IDE doen.

5) Nee, zolang je correcte C++ code schrijft is er niks aan de hand. C++ kan op 31, 32, 64 of 127 bits systemen werken, zonder dat je programma hoeft te wijzigen.

De grote vraag is, wanneer was 2 Gb voor jou te weinig geheugen? Bij mij had het 2 weken gescheeld in de laatste 5 jaar als ik een 64 bits systeem had gehad.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Waarom wil je perse 64-bits proggen, heb je niet genoeg aan 32-bits (dit is namelijk een van de redenen waarom het ontworpen is ) 64-bits procs kunnen de eerste 20 jaar gerust nog wel 32-bits progjes aan, als het 32-bits progje goed geschreven.

Meedoen aan een hype is leuk, maar voornamelijk nutteloos als je dit soort vragen stelt.

  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01-2025
De reden dat ik in 64 bits wil gaan coderen is omdat ik plugins wil gaan schrijven voor 3D software en bepaalde renderers en mee wil doen aan een open source project.

Deze software is nogal rekenintensief en heeft baat bij 64-bit precisie en meer dan 4Gig geheugen.
De specifieke software die ik bedoel heeft al 64-bit releases op andere platformen.(Irix/Linux)


Dat is eigenlijk de voornaamste reden.

[ Voor 14% gewijzigd door Arcane Apex op 07-05-2004 00:13 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Koop Visual Studio.NET en enable in Project Options -> C/C++ -> General de optie "Detect 64-bit portability issues" (compiler switch /Wp64). Als je vervolgens geen warnings krijgt heb je 64-bit portable code :)

Belangrijkste wat ie doet is warnings geven op gevaarlijke casts (pointer to int e.d.).

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:56

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik geloof dat die optie overigens standaard aan staat (heel irritant af en toe ;))

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Exirion
  • Registratie: Februari 2000
  • Laatst online: 09:52

Exirion

Gadgetfetisjist

Gomez12 schreef op 06 mei 2004 @ 22:28:
Meedoen aan een hype is leuk, maar voornamelijk nutteloos als je dit soort vragen stelt.
Inderdaad.

Dit soort vragen doen me altijd denken aan dit soort vragen:
1. ik wil leren proggen en moet dus de c00lste development tools hebben want die van vorig jaar zijn vet verouderd en zuigen
2. ik wil een 3D game a la GTA3 proggen. welke compiler moet ik gebruiken?

Ik bedoel... als je niet eens weet wat er zo anders is, ga dat dan eerst eens uitzoeken voordat je besluit dat je perse 64-bits wil coden.

"Logica brengt je van A naar B, verbeelding brengt je overal." - Albert Einstein


Verwijderd

MSalters schreef op 06 mei 2004 @ 22:12:
C stamt uit het 16 bits tijdperk en is niet veranderd voor 32 bits, en C++ werkt zonder enig probleem op 16 en 32 bits systemen. De grootste verandering is dat nieuwe compilers een 64 bits integer hebben (C "long long", C++ zo goed als zeker ook)
Natuurlijk zou het niet interessant zijn als er geen verschillen bestonden tussen verschillende platformen hoe groot een integer is...... :Y)

Op de meeste Unix/Linux Systemen is de int 32 bit en de long 64 bit (LP64). Op Windows 64 bits is dat natuurlijk anders ( ;) ) en is de long ook nog 32 bit. Het verschil zit hem in welke standaard men heeft gekozen:.

Data TypeLP32ILP32ILP64LLP64LP64
char88888
short1616161616
int3232
int1632643232
long3232643264
long long (int64)64
pointer323264

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Exirion schreef op 07 mei 2004 @ 00:20:
[...]

Inderdaad.

Dit soort vragen doen me altijd denken aan dit soort vragen:
1. ik wil leren proggen en moet dus de c00lste development tools hebben want die van vorig jaar zijn vet verouderd en zuigen
2. ik wil een 3D game a la GTA3 proggen. welke compiler moet ik gebruiken?

Ik bedoel... als je niet eens weet wat er zo anders is, ga dat dan eerst eens uitzoeken voordat je besluit dat je perse 64-bits wil coden.
I second that. Als ik je vragen zie heb ik niet het idee dat je echt doorhebt wat het hele 64-bit gebeuren inhoudt :)

Verwijderd

Arcane schreef op 07 mei 2004 @ 00:11:
De reden dat ik in 64 bits wil gaan coderen is omdat ik plugins wil gaan schrijven voor 3D software en bepaalde renderers en mee wil doen aan een open source project.

Deze software is nogal rekenintensief en heeft baat bij 64-bit precisie en meer dan 4Gig geheugen.
De specifieke software die ik bedoel heeft al 64-bit releases op andere platformen.(Irix/Linux)

Dat is eigenlijk de voornaamste reden.
Op de meeste 32 en 64 bit platforms zijn floats nog altijd 32 bit en double 64 bit. Dus daar veranderd er weinig. (ik geloof dat de CRAY een 128 bit double heeft)

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Crays zijn raar. Die hebben 43 bits ints.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1