Pragt.info
Partner site van: www.heinpragt.com
(c) Hein Pragt
logo pragt.info
Zoeken op deze site!
 
 

De programmeertaal "C" en "C++"

Inhoud opgave




Inleiding

© 2010 Hein Pragt

programmeertaal c Deze pagina gaat over mijn oude liefde, de programmeertaal "C". Ik leerde de taal "C" kennen in 1986 (dus 24 jaar geleden) door het werk wat is toen deed. Ik was programmeur van embedded software en schreef hoofdzakelijk in Z80 assembler code maar langzaam ging dit steeds meer richting "C". De taal "C" is ook maar één stap hoger dat assembler dus het was ook een logische stap. Naderhand ben ik ook PC applicaties gaan schrijven in "C" en er was zelfs een tijd dat ik de compiler als rekenmachine gebruikte. Na het lezen van de "C" bijbel, het bekende witte boekje van Kernighan en Ritchie was ik een totale fan van de programmeertaal "C". Samen met de collega's probeerden we steeds meer geavanceerde dingen te doen en werd het schrijven van code in "C" een soort van kunst.

We probeerden steeds beter te worden en steeds mooiere en meer efficiënte code te schrijven. Uiteindelijk heb ik een compleet datacommunicatie pakket "mightycom" in "C" geschreven met vele terminal emulaties, allerlei download protocollen, data compressie layers als MNP en zelfs een eigen script interpreter en TCP/IP stack. We leverden onze eigen tekstverwerker, onze eigen installers en collega's schreven zelfs in "C" en compleet eigen besturingsysteem. Voor Sony hebben we een compleet office pakket geschreven voor de MSX ook geheel in de taal "C". Ook schreef ik complete command interpreters, protocol stacks zoals mnp, v42bis en adpcm compressie software voor de roms van modems die we ontwikkelden en zelfs een complete tiny basic interpreter. We waren de grootste modem ontwikkelaar en producent in Nederland en ik heb aan al deze innovaties meegewerkt of persoonlijk ontwikkeld. De jaren daarna heb ik in "C" (inmiddels ook C++) geprogrammeerd op Digital VMS machines, op Unix systemen, op Sun solaris systemen en op IBM Pc's onder Microsoft Windows. Het hoogtepunt van mijn C++ tijd was dat ik een half jaar moest meeprogrammeren met het ontwikkelteam van Psion in Londen, waar ik de GSM protocol stacks gemaakt heb voor Epoc32, het latere symbian besturing systeem dat geheel in C++ geschreven is. Naast de taal "C" heb ik in bijna elke andere taal ook geprogrammeerd, maar de taal "C" en "C++" zijn nog steeds mijn grote liefde.

In mijn vrije tijd schreef ik grafische demo's en spelletjes en ik heb zelf een tijd 3D programma's geprogrammeerd, wanneer het op snelheid en efficiënte code aankomt, is er nog geen enkele andere programmeertaal die de taal "C" kan verslaan. Toen de taal Java opkwam zag ik, en veel van mijn collega's, deze taal als C min min of C++ for dummies. Dat de taal Java een dergelijk grote invloed zou krijgen hadden we nooit gedacht maar inmiddels heb ik ook al een aantal jaren als Java ontwikkelaar gewerkt en moet ik zeggen dat het went, zelfs de enorme verspilling van geheugen en machine capaciteit.

Maar binnen de sector van besturingsystemen, compilers, systeemsoftware en vooral de game industrie is de taal "C" en "C++" niet weg te denken. Als het om snelheid en compacte code aankomt, kan er nog steeds geen enkele taal tippen aan de taal "C". De beste 3D engines zijn dan ook allemaal in "C" of "C++" geschreven. Linux en Unix en zelfs Windows zijn voor het grootste gedeelte in "C" en "C++" geschreven. De meeste compilers voor andere programmeertalen zijn in de taal "C" geschreven.

Ik geef ruiterlijk toe dat de taal niet eenvoudig is, erg cryptisch kan zijn, zeer veel vrijheden aan de programmeur geeft en (bijna) geen enkele runtime controle kent. De taal is zo krachtig dat u alles maar dan ook alles fout kunt doen, het vergt een goede kennis, netheid en discipline van de programmeur. Als resultaat van deze inspanning krijgt u de meest snelle en compacte code die mogelijk is. Ook geef ik toe dat een goed geschreven stuk broncode in de taal "C" soms net een kunstwerk is, maar dat is juist ook de enorme charme van deze taal.

Nog steeds schrijf ik in te taal "C", mijn programma PragtFotoManager is in "C" en in Win32 geschreven wat resulteert in een zeer compact programma (230kb) dat supersnel is en erg veel functionaliteit kent. Ook maak ik hier gebruik van de GD grafische library die ook in de taal PHP gebruik is. Het grappige is dat je de taal "C" overal weer tegenkomt. Deze pagina gaat over mijn oude maar ook levenslange liefde voor deze programmeertaal, veel plezier met lezen en ik hoop ook u nog een beetje enthousiast te krijgen voor deze prachtige programmeertaal.

Vriendelijke groet, Hein Pragt



Gratis compilers en tools

AnjutaFree open-source IDE for C and C++ on Linux/GTK/GNOME.
Borland C++ 5.5This well known compiler from Borland (for Windows and DOS) can now be downloaded for free (legally)!
CC386A general-purpose 32-bit C compiler + IDE for Windows and DOS.
Code::Blocks StudioA freeware open-source C++ IDE for Windows and Linux. It supports these compilers: GCC (MingW / Linux GCC), MSVC++, Digital Mars, Borland C++ 5.5, Open Watcom.
Dev-C++A full-featured Integrated Development Environment (IDE) for the C/C++ programming language. Freeware for Windows.
Digital MarsFree C and C++ Compilers and IDE's for Win32, Win16, DOS32 and DOS, command line and GUI versions, tutorials, sample code, online updates, Standard Template Library, etc.
djgppA port of the GNU compiler and programming tools to MS DOS.
EcereA free cross-platform IDE (designer, debugger, code editor) and SDK (GUI framework, 3D and socket programming, etc.) for creating software for Windows and Linux. Ecere introduces eC, an object oriented language derived from and fully compatible with C.
Eclipse CDTC and C++ Integrated Development Environment (IDE) for the Eclipse platform implemented in Java.
GNU C++/C CompilerGCC, the GNU Compiler Collection (freeware, open source, multi-platform), includes front ends for C, C++, Objective-C, Fortran, Java, and Ada.
Intel C++ compilerFree Linux C++ compiler from Intel. Freeware for non-commercial use. It uses either the command line or the optional Eclipse-based integrated development environment (Eclipse IDE runs on IA-32 only).
KDevelopFree open-source IDE for Linux/KDE which supports many programming languages.
LCC-WinFree C compiler/IDE for Windows . Contains compiler, debugger, resource compiler, resource editor, etc etc. Freeware for non-commercial use only.
MinGW Developer StudioAn IDE for the GNU C/C++ Compiler. Freeware for Windows and Linux.
Open WatcomFreeware open source C++ (and Fortran) compilers for Windows. Plans for Open Watcom include porting the compiler to the Linux and FreeBSD platforms
Pelles CA complete development kit for Windows and Pocket PC. It contains an IDE, optimizing C compiler, a linker, a resource compiler, a message compiler, a make utility, a debugger, install builders and much more. For Windows and Pocket PC.
RhideAn IDE with which you can develop and debug in C, C++, Pascal and other languages and compilers which can be called from Rhide. Suitable for Linux text-console and DOS / DJGPP.
SallyA simple C++ development environment for WindowsXP, with a "SmartWin++" Visual GUI Designer and static library.
Small Device C CompilerA retargettable, optimizing ANSI - C compiler that targets the Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08 based MCUs. Freeware, Open Source.
SmallIDEElegant IDE for the free Borland C++ compiler (see elsewhere in this section).
Tiny C CompilerFreeware, small and fast C-compiler for Linux and Windows.
Turbo C 2.01Free DOS C-compiler from Codegear.
Turbo C++Free industrial strength C++ RAD (Rapid Application Development) environment and compiler for Windows. It comes with 200+ components and its own Visual Component Framework. Note: this is the free edition of Borland C++ Builder. The only limitation of this free edition is that you can not install additional components.
V IDEIntegrated Development Environment for the GNU g++ compiler, Borland C++ 5.5, and the standard Sun Java Development Kit. Suitable for Windows and Linux.
Visual C++ ExpressFree Visual C++ compiler for Windows and .Net by Microsoft.
Visual-MinGWFreeware open-source IDE for Windows. An Integrated Development Environment for MinGW compiler.


Gratis libraries

3D_enginesThis list contains free engines, which specialize on real-time 3D rendering, opposed to 3D game engines, which aim to provide complete solutions (sound, networking, physics).
ACEPortable, open-source, object-oriented C++ network programming toolkit for Unix/Linux, BSD, Windows, MAC, Java, etc.
POCOA collection of open source class libraries that simplify and accelerate the development of network-centric, portable applications in C++. Suitable for: Windows, (embedded) Linux, MAC, HP-UX, Tru64, Solaris,QNX.
MySQL++MySQL++ is a C++ wrapper for MySQL's API.
SQLLiteSQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.
Real IsamA database library (DLL) that uses the ISAM method (Indexed Sequential Access Method) to manage access keys and variable length data records. For C++, Delphi, Visual Basic, etc. Freeware for Windows.
UCLUCL is a portable lossless data compression library written in ANSI C. UCL implements a number of compression algorithms that achieve an excellent compression ratio while allowing *very* fast decompression. Decompression requires no additional memory.
ZLibFree zip/unzip C-library.
AGGHigh-quality 2D graphics library with anti-aliasing and subpixel rendering. Open source, freeware.
Amanith FrameworkA cross-platform (Linux, Win32, Mac OX X, FreeBSD, Linux and IRIX) open source C++ framework for 2D and 3D vector graphics that includes 2D curves, a 2D font engine, bitmap vectorizer, tessellator, and an OpenGL extensions manager.
Codehead's Bitmap
Font Generator
A free bitmap font creation tool for OpenGL or DirectX applications.
OGRE 3DOpen source 3D-graphics and game engine for Linux, MAC and Windows.
OpenGLHigh-performance cross-platform 3D graphics library. Elegant API. It can be used for a variety of purposes, such as: animations, virtual reality, game-programming, simulations, etc.
SDLA cross-platform multi-media library developed with commercial game-porting in mind.
Haru Free PDF LibraryA free, cross platform, open-sourced software library for generating PDF written in ANSI-C. It can work as both a static-library (.a, .lib) and a shared-library (.so, .dll).
libpdf++A free C++ library to generate PDF files
pdfg++A C++ library supporting advanced graphics PDF output. This includes transparency and shading.
PoDoFoThe PoDoFo library is a free, portable C++ library. It can parse existing PDF files and create new ones from scratch.
FreeTypeA free, high-quality, and portable font engine, which supports True Type and Open Type Fonts as well as unicode.
International components
for Unicode
Widely used set of C/C++ and Java libraries for Unicode support; open source.
LASiA C++ library that provides a C++ stream output interface for creating Postscript documents containing Unicode characters.
libiconvUnicode character conversion library using over 150 character set encodings.
libunicowsUnicode library for Win32, to alleviate the complications related to developing a single unicode app for all Win32 platforms.
PangoA library for laying out and rendering of text, with an emphasis on internationalization.
UTF - CPP A simple, portable and lightweight generic library for handling UTF-8 encoded strings.
xtklibFree C++ library for Windows and Unix (Linux/BSD) with: streams, unicode strings, sockets, file access, exceptions hierarchy, etc.


Visual Studio 2008 Express
© 2010 Hein Pragt

Zelf gebruik ik al meer dan 20 jaar de Microsoft C compilers, ik heb zeker 5 versie's op originele CD hier in mijn kast liggen en heb zelf nog een geldige licentie voor versie 4.2 en 5.0. Maar nu gebruik ik Visual Studio 2008 Express editie C++ wat een volledige versie is zonder beperkingen, behalve de resource editor. Maar deze is ook freeware versie van de downloaden, als je met resources en custom dialogs wilt werken. Ik programmeer zelf puur op win32, dat is dus standaard C met Win32 aanroepen om dingen op het scherm te zetten, de muis en het toetsenbord af te handelen. Het is een prima ontwikkel omgeving met ingeboude debugger.

Download Visual Studio 2008 Express C++

Visual Studio 2008 Express C++

Boeken over C en C++

C handboek / druk 1 C handboek / druk 1 Brian W. Kernighan & Dennis M. Ritchie

The C programming language is niet alleen HET standaardwerk over C: dit boek is vanaf het verschijnen van de eerste druk de officiële definitie van de taal C. Omdat deze tweede druk is gebaseerd op de voorgestelde ANSI C-standaard zal ook deze druk ongetwijfeld de rol van standaard blijven vervullen. Dennis Ritchie werkt bij Bell laboratories van AT&T hij wordt gezien als het brein achter de taal C. Brian Kernighan is (mede)auteur van diverse programmeerboeken voor gevorderden. C is een veel gebruikte, krachtige, maar ook moeilijke programmeertaal. De ontwerper van de taal, Dennis Ritchie, is een van de auteurs van het boek. Het boek is bedoeld als leerboek en naslagboek, maar alleen geschikt voor mensen die al bekend zijn met een programmeertaal als Pascal of FORTRAN. Deze editie is aangepast aan de ANSI-standaard. Hoofdstuk 1 brengt de lezer via de hoofdlijnen snel tot programmeren. De overige zeven hoofdstukken behandelen elk een onderdeel van de taal. Het boek is duidelijk geschreven met veel zinvolle voorbeelden. Voor de programmatekst is een afzonderlijk lettertype gekozen, wat overzichtelijk werkt. Elk hoofdstuk bevat zorgvuldig gekozen opgaven om het geleerde in praktijk te brengen.


Leren programmeren: in C++ / druk 1 Leren programmeren: in C++ / druk 1 N.B. Meijerman

Dit boek is zodanig opgezet dat de algemeen als 'moeilijk´ bestempelde taal C/C++ als eerste taal kan worden aangeleerd. Omdat in het bedrijfsleven deze taal zich meer en meer heeft gevestigd als dé general purpose taal, voorziet dit boek in een grote behoefte. De twee belangrijkste programmeer-paradigma´s van C++ komen in dit boek aan de orde, te weten het gestructureerd procedureel programmeren en (een basis voor) het objectgeoriënteerd programmeren (OOP). De inhoud van het boek bestaat uit drie delen. Het eerste deel beschrijft de basiselementen van C++, met een nadruk op het gebruik van standaardfuncties. Deel 2 behandelt het ontwerpen van procedurele C++ programma"s. Het technisch ontwerp geschiedt door middel van stepwise refinement. Voor de representatie daarvan wordt gebruik gemaakt van IPU-schema"s, gegevenstabellen, PSD"s en pseudocode. Ook het testen komt aan bod. In deel 3 wordt dieper ingegaan op de mogelijkheden van C++, gericht op een veelheid aan toepassingen. Het boek bevat veel praktijkgerichte voorbeelden tussen de tekst en de opgaven en opdrachten aan het eind van ieder hoofdstuk maken dit boek uitstekend geschikt voor zelfstudie. Bij het boek is een diskette verkrijgbaar met de voorbeeldprogramma´s.


In zee met C In zee met C Moesgestel, L. van

In het eerste deel van het boek wordt een inleiding in de hogere taal C gepresenteerd. Het een en ander wordt aan de hand van C-programma's toegelicht. Hierbij wordt gebruikt gemaakt van een C-compiler in een Linux omgeving. Het is voor de beginner goed te volgen en alle belangrijke elementen van C komen aan de orde. Het tweede deel is gericht op C in een embedded en/of technische omgeving. Het laatste deel is doet een groot beroep op voorkennis van de gebruiker. Waar nodig wordt theoretische achtergrondinformatie gegeven. Onderwerpen zoals variabelen en constanten, samengestelde datatypen, pointers, functies, C in een embedded omgeving, crosscompilatie, het aansturen van hardware vanuit C, fixed point-berekeningen, assemblers en netwerktoepassingen worden behandeld. Goed geschreven studieboek voor het hoger onderwijs; een tweede doelgroep is de pc gebruiker die programmeren als hobby heeft. De uitgave is ook geschikt als naslagwerk. Aan het boek is een cd-rom toegevoegd met o.a. de populaire Linux distributie Ubunta. Deze cd is onmisbaar voor de gebruiker.


De programmeertaal C / druk 4 De programmeertaal C / druk 4 Nigel Kelly & Al Kelley

De nieuwe editie van deze klassieker is een volledig leerboek en naslagwerk voor de taal C, met de ANSI standaard als uitgangspunt. De unieke structuur van het boek verklaart de mogelijkheden van C onder meer aan de hand van voorbeeldprogramma's, die ontleed worden om hun onderliggende structuur te tonen. De auteurs besteden daarbij veel aandacht aan de implementatie van taalelementen op verschillende computersystemen. De vele voorbeelden en de oefeningen aan het einde van elk hoofdstuk geven inzicht in alle concepten van C en verklaren de diverse moeilijke punten van de taal. Er is ook aandacht voor besturingssystemen; zo worden het gebruik van semaforen, signalen, multiprocessing en interproces-communicatie behandeld. De uitgebreide behandeling van onder meer de standaardbibliotheken en de complete syntaxis van C maken dit boek tot een onmisbaar naslagwerk bij het programmeren.


Aan de slag met C++ + CD-ROM / druk 4 Aan de slag met C++ + CD-ROM / druk 4 Gertjan Laan

De vierde editie van Aan de slag met C++ is geheel herzien en zoveel mogelijk aangepast aan de internationale standaard van C++ (ISO/IEC 14882). Dit uit zich vooral in het gebruik van de typen bool en string, van namespaces, en van andere header files. Door het gebruik van typen string en vector is er minder ruimte nodig voor uitleg van (character-) arrays en pointers. De vierde editie is verder uitgebreid met een hoofdstuk over het gebruik van de belangrijkste container-klassen, iteratoren en algoritmen uit de STL.


De programmeertaal C++ / druk 1 De programmeertaal C++ / druk 1 Bjarne Stroustrup

"De programmeertaal C++" behandelt haast alle onderdelen van C++. Als echt lesboek voor beginners is het niet heel erg handig, want er zit niet echt een 'stap voor stap' structuur in. Wel is het een heel erg handig naslagwerk voor gevorderden C++ers, of voor beginners die heel erg gemotiveerd zijn en niet per se stap-voor-stap instructies nodig hebben. Ik ben erg tevreden over dit boek, het was soms wat lastig te volgen doordat er moeilijke voorbeelden werden gebruikt met onderdelen er in die nog niet behandeld waren (tenzij je al door het boek heen had gebladerd en daar dingen uit hebt geleerd), maar ik hou juist wel van wat complexere dingen en dingen zelf uitzoeken. Een aanrader voor iedereen die heel graag C++ wil leren, of voor alle gevorderden C++ers die een naslagwerk kunnen gebruiken!







Last update: 10-01-2010
 

Disclaimer.

Hoewel de heer Hein Pragt de informatie beschikbaar op deze pagina met grote zorg samenstelt, sluit de heer Pragt alle aansprakelijkheid uit met betrekking tot de informatie die, in welke vorm dan ook, via deze site wordt aangeboden. Het opnemen van een afbeelding of verwijzing is uitsluitend bedoeld als een mogelijke bron van informatie voor de bezoeker en mag op generlei wijze als instemming, goedkeuring of afkeuring worden uitgelegd, noch kunnen daaraan rechten worden ontleend.
Op de artikelen van de heer Pragt op deze Internet Site rust auteursrecht. Overname van informatie (tekst en afbeeldingen) is uitsluitend toegestaan na voorafgaande schriftelijke toestemming van de rechthebbende. Voor vragen over copyright en het gebruik van de informatie op deze site kunt u contact opnemen met: (email: copyright@heinpragt.com)

Webdedesign: © Hein Pragt
Fotografie: © Hein Pragt
Auteur: © Hein Pragt

Privacy beleid
Wij maken gebruik van externe advertentiebedrijven om advertenties weer te geven wanneer u onze website bezoekt. Deze bedrijven gebruiken mogelijk informatie (niet uw naam, adres, e-mailadres of telefoonnummer) over uw bezoek aan deze of aan andere websites om advertenties weer te geven over goederen en services waarin u wellicht geïnteresseerd bent. Als u hierover meer informatie wenst of als u wilt voorkomen dat deze bedrijven deze informatie gebruiken, klikt u op deze link.