HOME - - / - - / - -
DELPHI COURSE INDEX
- - / - - / - -
- - / - - / - -
Other material for programmers
Delphi Course: Naming of Parts essay
This page is information rich, and a has search button at the bottom of the page.
Please don't dismiss it because it isn't full of graphics, scripts, cookies, etc!
You will probably find the text easier to read if you make your browser window much narrower than usual. You may also want to change your browser's zoom level, to enlarge the text. Opera (at least) lets you change zoom level easily. The text will adapt nicely to the settings you decide give the best results for your needs!
The lines of sample Delphi code in these pages will not "wrap". I.e., if a line is too long to show in the width you have set your browser too, parts of the line will be "off the page". Those lines will still copy/paste properly, at least in Opera. Please feel free to send feedback on the choices I've made! (Will you forgive me for not forcing upon you a column of links on the left and a column of ads on the right?)
Almost all of this course will be taught using lots of hands-on examples. However, there will be some "essays" which just tell you things you need to know. This one is quite modest....
You may find typos and rough edges in this. None-the-less, the basic information should be accurate. If something seems wrong, or if you find I've assumed knowledge without explaining it in a previous lesson, please let me know. Please forgive matters of typos, etc. for now. I am not inherently sloppy! The blemishes will be dealt with later.
"Divide and Conquer", "Know your enemy"
This essay is going to introduce you to the parts of any computer system.
You will probably find this discussion a little academic. Try to hang in there... while nothing here will immediately let you "do things", it is a bit like an introductory biology course which does a tour of the various groups of organisms. Human intelligence is to some extent based on breaking the world down into categories and groups. If you're going to make computers do what you want, it helps to know a bit about them.
The first great division in discussing the parts is "software" and "hardware".
Hardware / Software
Software is the name for the programs which make the computer do things. Software is the instuctions, the applications. Please either don't ever speak to me if "software programs", or show me why that isn't an ignorant phrase on a par with "canine dogs".
While you can touch the CD or disk that the software is stored on, you can't touch the essence of software.
Everything else is hardware, which is the main focus of this essay. Just before we turn to that, to be thorough, we need to cover "firmware". Sometimes software is stored in integrated circuits ("chips"). Firmware refers to such software. Dedicated devices like cellphones, printers, games consoles have all or most of their software in chips, as firmware. Even computers have at least some of their software in chips. The computer's "BIOS" (Basic Input Output System) is in firmware. We'll go into more detail when we look at backing store.
If "everything" is either hardware or software, then data would certainly be under the software heading. Often when people speak of "software", they are talking about the instructions for doing something, as I said. However, most jobs are hard to do without some data. A program to look up telephone numbers is pretty useless without data consiting of poeple's names and numbers. The latter would be called data. Like the programs, it is rather ephemeral, more a concept that something you can touch. Are the pieces of paper with ink on them the "data"? Not really... the ink is just a way to get the right neurons firing inside your head. Data has many things in common with the programs, so it goes under the "software" heading.
Before we turn to hardware, a short diversion:
I have to confess that I find the distinctions between the terms "program" and "application" a little vague. Most of the time when I use one, it seems as if I might as well have used the other. Borland seems to prefer the term "application". I believe that a program is a single file on your computer, a file full of instructions for accomplishing some result. An application may, if I understand the term properly, consist of one program or many. "An application", I think, is one or more programs which accomplish some result. In other words, "application" is a broader term, even though some programs are also applications.
There's nothing tricky or subtle about this topic. I still think it is useful to take a moment to organise your thoughts.
All programming used to be looked upon as....
Processing ("massaging") the input
That is still essentially true, but as a point of view to work from when writing programs it is not as helpful as it once was. However, it does still make a good framework for thinking about hardware.
Input devices: Keyboard, mouse.
Output devices: Monitor, printer, speakers.
What about your modem, the device that connect you to the internet? That's a device combining input and output capabilities.
The processing part of the heirarchy, neatly enough, consits mostly of "the processor". It started life as a small thin square of silicon. Clever things were done to that, and it became an exquisite marvel behaving just like a many, many times larger electronic circuit board with transistors, resistors, capacitors and other geek delights. If you have seen your "processor", you may object to what I said about it being small. What you saw was a package containing a processor. Most of it was heatsink, fan, connectors, etc.
You get silicon from sand... but that is not to say the it is like sand. You get hydrogen and oxygen from water in exactly the same sense, and anyone who thinks they're like water should speak to people who were on the Hindenburg. Silicon is brittle; it looks a bit like dark glass. And please, please, please do not confuse "silicon" with "silicone" which a very, very different substance.
Most people were told by the salesman that the processor in their PC would be a "Pentium", an "Athlon", or a "Celeron". Did the salesman know the differences? It's a bit like a car salesman telling you the model of the engine in a car. In either case, performance specs matter (processor: speed, cache size; car: horsepower), but the actual model is not always worthy of the attention the subject gets.
Processing is just a fancy word for following instructions. The computer program, the software, is instructions. The processor carries out those instructions. The instructions may, for example say:
- Get two numbers,
- Add them,
- Tell me what the sum is.
The processor is in charge. It goes to some input device for the two numbers. The adding is done in the processor chip, or another chip which is under the "processing hardware" heading, and it tells the output device to display the answer to the user.
"CPU" means Central Processing Unit, and is what I've been talking about. you may also have heard of numeric or graphic processors. These are separate chips to which the CPU may "farm out" some tasks. Memory management and other tasks may also be handled by auxiliary chips.
That's 90% of what you need to know about hardware. Only memory, storage and the exotics are left....
Memory and storage
When you buy a computer, two other things should be important to you. They are "storage" and "memory". Memory and storage devices, like modems, sit astride both the input and the output categories. The terms are widely misunderstood, misused. You can be part of the new wave of people who are not sloppy with these terms!
You'll remember the salesman trying to sell you the biggest, fastest hard disk, aka hard drive, he could. (Bigger, faster: more expensive)
The hard drive is a storage device. You "write" things to the disk because they are things you may want to look at again one day, when you will "read" them back from the disk. The "things" may be programs (instructions to make the computer do things) or data. Data encompasses not just things like the temperature outside at different times over the period observed, but also emails you have sent or recieved, essays (even this one!) that you have in the computer, photographs, music, etc, etc.
A hard disk is not the only way to store things. It is Good as it can store lots of stuff, and it is an integral part of your PC... you can't mislay it. It is also a relatively fast storage device- you can read and write from/to it quite quickly, compared to some things. It is also Bad because it is an integral device. If it gets full, and there's nothing you are willing to delete to make room for something new, you are in trouble.
Alternative storage devices......
Floppy discs are also storage devices. They are Good in that they are removable. When one gets full, you can just put a new one in. They are Good for moving things from one machine to another: You have a brilliant essay in your computer, and you want your friend to have a copy. You write the essay to a floppy, send that to your friend, they put the floppy in their machine, and read the essay. Floppies are Bad in that they are relatively slow and "small", i.e. they can't hold as much data as other devices. I did say relatively small. Before, in line with our extravagence in all other things, we drifted into prodigal habits with respect to what we store, and how we store it, a floppy was quite adequate for many things. All of the material in these lessons, as they stand at the moment (mostly done), up to here in the course, would take less than a seventh of a floppy disc.
So far the storage devices we've discussed have been read/write devices. You can read from them, you can (easily) write to them. Of course, there must be some way to write to any device, but it sometimes takes special equipment, and with some devices you can only write to them once.
A popular storage device at the moment is the CD or DVD. Capacious, reasonably fast, removable. What's not to like?
Thumb drives are also storage devices. I don't have a thumb drive... but I do have a USB mouse with a Compact Flash chip in it. The best of several worlds!
The discussion of storage could have gone on and on. Memory is more simple.
The main things that can be called memory properly are the RAM and EPROM (and, if you have it, EEPROM) inside your computer's "main box". You may well have never seen it, any more than most people have seen their processor or hard drive.
Like the processor, your memory is just chips.
Memory, like storage, comes in read/write forms (memory: RAM; storage:hard discs, floppies, some CDs) and in "read only" forms (memory: EPROM; storage: some CDs). As with storage, "read only" is a little misleading. Someone, somewhere, sometime wrote things into that device, but you can't do it without special equipment, and, with some devices, you can write to them only once. Others can have their contents changed, but only if you have access to special equipment. Changing the device's contents may or may not entail removing the device from it's normal location. Changing the device's content is called "re-programming". That is a respectable term, but it is misleading, because some devices are "programmed" (term stretched) with data.
So what is the difference between memory and storage?
The easiest thing to do is simply to remember that memory is RAM and EPROM, and that the other things are storage. (Thumb drives muddy the water a little. They are storage, even though, inside them, they have EEPROM... but the way it connects to the computer makes all the difference.)
The amount of memory available in a system, rather like the space on the system's hard drive, is fixed. Bad. The only way to change it is to open up the box and change some of the hardware.
The amount of memory available in a system is also relatively limited. Bad. But having lots and lots of memory gets expensive.
The Good thing about memory is that, relative to storage, the processor can read and write to/from it very, very quickly.
The difference between memory and storage is in how the processor is connected to it. The connections to memory are designed to be fast, even if limits have to be accepted on the theoretical amount of memory a given device can ever attach to, and econimic limits will be reached quite quickly, even before the absolute technological ceiling is reached.
The connections to storage allow for removable media, and for cheaper media. The compromise is that those connections are much slower.
Storage devices are also refered to as backing store. When you see that term, you should not infer that the author is only thinking of backup work.
Most of us have to accept the reality that we will be dealing with keyboards, mice, monitors. There's lots of good work to be done there... but don't forget that NASA's space shuttle is also "a computer", and some programmers are working on programming that!
The differnce between creating the next web browser and programming the shuttle lies primarily in the input and output devices available to you.
I have a whole other set of pages on the web relating to these topics, but here are some highlights...
Modestly "exotic" input devices: Joysticks, graphics tablets, simple switches.
You'd be amazed at what you can do with simple switches. Burglar alarms? Vending machines? Safety devices?
More exotic input devices: Sundry electronic sensors. You can wire up "things" to your computer to read temperatures, read how fast a shaft is spinning, read which way a weather vane is pointing, etc. (Note I said your computer. There is some risk when you embark on these things, and if you are 10 be sure your school or parents are consulted before you try connecting exotic things.
Modestly exotic output devices: Sirens, LEDs, large format printers, x/y/z milling machines. (Expensive, but not very exotic!)
More exotic output devices: Motors, which come in two types: ones that just turn, and others which turn to precise positions. With motors, you can achieve robotic arms, things to open and close doors, etc. Fire suppression devices, e.g. sprinklers. (I'm not sure I'd want a sprinkler attached to a Windows based computer, but it makes a good exotic output device to contemplate, if not necessarily implement.
And of course, you can consider a rocket engine as a type of motor, and it is most certainly computer controlled... even if it is a little difficult to purchase.
Click here if you're feeling kind! (Promotes my site via "Top100Borland")
Ad from page's editor: Yes.. I do enjoy compiling these things for you... I hope they are helpful. However.. this doesn't pay my bills!!! If you find this stuff useful, (and you run an MS-DOS or Windows PC) please visit my freeware and shareware page, download something, and circulate it for me? Links on your page to this page would also be appreciated!
Click here to visit editor's Sheepdog Software (tm) freeware, shareware page.
Link to Tutorials main page
Link to Delphi Course index
Here is how you can contact this page's author, Tom Boyd.
Page tested for compliance with INDUSTRY (not MS-only) standards, using the free, publicly accessible validator at validator.w3.org
If this page causes a script to run, why? Because of things like Google panels, and the code for the search button. Why do I mention scripts? Be sure you know all you need to about spyware.
....... P a g e . . . E n d s .....