Educational program - let's talk a little about programming, or rather about the life stages of any program.

Oberon #02
 Today  let's talk a little about
programming, or rather about life stages
smelled like any program. Computer lovers
no pops" can safely flip through this
rubric. This time my story will be non-
long, but next time...             
 As I already told you during our first
meeting ("OBERON" No1).programmers are not
are born, this is a diagnosis after five years
suffering at the university. One of the important points
programmer learning is hammered into
teaching him those stages that are MANDATORY
his program must pass.            
 Total such stages or life stages
programs eight.                         
                                          
1.  Definition of  necessary technical
system configuration requirements.        
 At this stage, the
customer) technical requirements for equipment
tour on which and with whom he will work
program. If there is no customer, thenthese three
the requirements are determined by the programmer himself. All
further development will be carried out
in accordance with them.                    
 For SPECTRUM  you, starting development
your program must define:        
                                          
- Is it necessary to have a disk drive to operate
program bots:                           
- DOS version and type (Is-DOS, TR-DOS, CP/M):
- minimum memory size for operation:
try to keep within 48K, if not, then within
128K and in the very last resort
more 128K, in this case you need to determine
computer type  with these "more than 128K"
(SCORPION, ATM-TURBO, PROFI, or even better
all at once): - presence of a music coprocessor:      
- compatibility issues: should I use
mythical #FD port, or normal #7FFD:
whether to use  attribute port #FF (if
it is possible, it is better to do without it): use-
Should I add a table for the 2nd interrupt mode?
vectors (to work on all computers),
or specify the vector in two bytes (it will be
work only on computers with
bus data bus).                    
                                          
2. Problem statement.                     
 In theory, this should not be done by software.
rammist, and task manager (position
such at the CC), but more and more often this is due to
The programmers themselves are concerned. At this stage
a phrase like: “I need an accounting program
employees' wages", translated
in the phrases: “create a program that allows
(a) fill in information aboutemployees, (b)
delete information about employees, (c) cor-
rectify information about employees (d)
view information, (e) produce
search for information based on specified criteria."
In a word - at this stage you begin to
the possibilities and functions of the future are drawn
programs.                                
                                          
3. Creating a conceptual model.        
 One of the most critical stages. B
at the beginning you must answer one ticklish
vy, but obligatory question: IS IT NEEDED
USERS  your program that performs
functions defined in the previous step?
And if not (not needed), then either from a distant
Our work on this program is being refused -
Xia, or go through points 1,2 again. If
the program is recognized as necessary, then
a conceptual model of behavior is created
future program - what and when it will be
do what information andwhen to enter and
output, ... Here the structure is defined
tour and the type of management and control over its operation
robot (control keys, systems and other
menu hierarchies, types and quantities of input and
output  information,  in one word -
user interface). Determined
time criticality of the entire program and
separate modules.                        
 For games, the rules and
cons of the game, all characters participating in
game, their behavior, interaction with each other
friend, ... A description is determined and created
sanity of each character in order to
then the program controlled it
this character.                          
 Upon completion of this stage, you should have
result in a balanced model of prog-
frameworks, ideas about situations that
may occur while the program is running
and ways out of them.                     
                                          
4. Creating an algorithm.                    
 Considering the results of points 1 - 3, pro-
The creation of a program algorithm is carried out.   
 Created as a general algorithm (what is what
the procedure does and with which it is connected), so
and the algorithm of each procedure.              
 Very convenient and useful for drawing diagrams
algorithms (what is called in jargon
block diagrams).                            
                                          
5. Language selection and algorithm programming
ma.                                       
 As you have probably already noticed, until now
not a single line of the program was written!!
It is still not even clear in what language
where will the program be written!!            
 Now that you have the algorithm, you must decide
What language should I write in? And decide it
it is necessary not according to the principle "which language I know best-
she.  That’s why I’m writing.” and according to the principle "what
the language will allow you to effectively implement the algorithm
rhythm."  Having selected a language, you can begin
programming and debugging of the program.     
 As you can easily see, this is the fifth, andnot the first and
the only point!!!  Nods to the experienced
programmers - “they supposedly start right away
program" do not correspond to the actual
telnosti.  Despite everything, even
a bad programmer cannot program,
without having an algorithm! Another thing is that he
comes up with it on the fly and takes it right away
heads. But that’s why he’s experienced.       
 Just like an experienced engine noise mechanic,
gatela can make a “diagnosis”, and
an experienced programmer produces many of the
above listed “in the mind” (but about
harasses!), only in the most confusing and
difficult places using a leaf
papers and pens. And when he was inexperienced
and “beginners”, he sketched and wrote down everything
written on paper. And there’s nothing “pro-
lowering" - a person who calculates in his mind
complex integrals, once I didn’t even know
the simplest multiplication table.             
 And it doesn’t matter if he started programming
without having a drawn algorithm - he
will draw later (at least to check the correctness)
the correctness of the program and for its debugging).   
                                          
6.   Thorough program testing
(another name is trial operation).
As a resultwhich, if possible, you
errors are found and corrected
inevitably contained  in any program
(old "programmer" axiom: in any
program.  no matter how good she is
dumana.  contains at least two
serious  errors.  which can be identified
only during operation). Exactly this one
many people love this stage very much or even pro-
let it go, or pass superficially, but in vain.
                                          
7. Creation of accompanying documentation.
 The final stage, during which
you must describe how yours works
program, how to work with it and on what
it should work on computers, maybe
bot, ...                               
                                          
8. Start of propagation.                
 Now, and only now, the program
responsibly designed and tested, and
you can start distributing it.        
I'm not afraid to repeat myself and say that
ANY program must go through these
stage, even if it's a hacker version! 
 If it has not passed at least one stage, or
this stage turned out to be “crumpled”, then this
means one of two things:                    
                                          
1.  This is a program for “purely home use”
use within the family" and its release into
sale is an act of deep disrespect
tions to users (i.e. to those who
will buy).  Personally, I have several of these
my programs, they do not have good in-
terface (why should I make them fancy,
if no one but me sees them?),
designed to work mainly only on
SCORPION'e   with   shadow service monitor
(I haven’t made “buggy” ones for myself yet)
algorithms for working with disks when they are already
"hardwired" into the ROM of my SCORPION !), do not have
practically no documentation (I already
I remember why I made them and how to work with them
thief).                                    
 And nowimagine one of these
I started distributing programs!!! Yours
emotions about this? And here are the "beginners"
programmers",  "INFORCOM"  (yes   and
"SPECTROFON" it seems too) they count themselves
it goes without saying that the spread of such
programs.                                 
                                          
2. This is, after all, a commercial program,
but terribly flawed, if I work at all -
shaya. Examples? Yes, there are many of them. GamesVIRUS
and VIRUS-2: multiple "mistakes" on
stage 3 (creating a conceptual model).
resulting in incorrect processing
viruses, incomprehensible rules for changing
management of the virus when its parameters change
ditch, stage 7 (creation of accompanying documentation
documentation)  - the amount of information
which the author tells us cannot be called
just acceptable, notthat which is sufficient.
  Game "Land of Myths": program that
it was quite possible to implement it at 128K
(albeit with loading, not for the first time) working
melts only at 256K (stage1, hardware
requirements). the army is degrading all the time and
there is no question of any searchRune Staff
cannot  (stage 3, creation of concept-  
al model).                           
Game "SOLDIER OF THE FUTURE": at the beginning
battle robots should be located away from each other
friend (moreover, either everyone is outside the building,
or all inside one building) no further
a certain distance, otherwise they will not have
enough energy to find each other (stage 3),
the arrangement of robots before the battle takes place
"blindly"  because  the map will be displayed on the screen
later (thatsame stage 3). I hope further
There is no point in continuing.                      
 So, dear software developers,
ramm, please distribute only
those programs that are made “according to science”.
Respect the buyer (aka user). 
                                          
                                          
                                          
                                          
 That's all for today, first "digest"
those"  this  information,  and then I will tell you
“I’ll feed” the other one too.  But seriously, then
very soon (but not before you understand-
note that programming is one of the types
art, with the addition of mathematics
logic)  we'll get to the description
Assembler  and  techniques  programming
on it. До новых встреч.               
                                          
                         (C)  PAUL ATRIDES
                                          
══════════════════════════════════════════
                 *  *  *

Share your thoughts about the article