Deja Vu #05
31 мая 1998 |
|
Seven and 1 / 2 - Programming from the bottom up to iskosok.
SoundTrack: SECTOR OF SSG WAS HERE (RLZ98) __________________________________________ Edition: Dan!! L / PGC / BD Ze Pagan / PGC / BD __________________________________________ Programming upward slant. / SVN / I. Where to start. Many Western programmers argue that, before starting to write prog Rummy, you need time to K deliberation algorithm, and neZ K are even calling attention K sticks to the essence of the problem, which K to be addressed. Kategorih K practically do not interest K vatsya formulation of the problem K prior to receipt of obekv K tnogo module programmy.Pom K filamentary that programming - * K is an art, so any Dr K extra knowledge only restricted K stricting your imagination. On begins to write the text of the program long before you formulate specification, and you get a great opportunity to make the life of your manager (and his) are much more diverse and interesting (for example, at the time of TK, you can make trouble: "Imagine how many will now have to adapt? ". Never compose advance a block diagram of the program. Firstly, it is simpler and faster to do when the program is already written, and secondly, inadvertently left on the table block diagram will give your enemies and envious opportunity to understand what you are going to do. Remember that no one except You should not deal in your program. And if you just can not get rid of a bad habit to draw a flowchart, then hack to death on your nose: The larger structure of the program consistent with its logic, the less you stand as a programmer. II. Style. This buzzword in many Western adherents and apologists give a special, almost no mystical meaning. Certainly, every programmer or there, the composer has the right write in his manner, but given the Volumes of programming development, it is necessary to reckon with reality. Like everyone else, Programming must be thrifty! Spend up to 50% of listings on the comments, spaces, empty operators, stars and other decorations - very unacceptable waste. E-mail to Second in the 71st position in every possible way to avoid gaps. If the comment did not escape, try to write them as specific as possible. For example: DO J = 1, then N; / * sYsL Po N * / IF J> 0 tneN Goto m * / m * is reRehoD / eLSe Goto L; / * ReRehoD to L * / x = x +1 / * 1 to rRIvaWIth x / * eND, m: x = x-1 / * so it is necessary Fyodor! * / IF a tneN Goto L; L: / * VozVeStY x Ster. Two * / x = x ** 2, ... Etc. All the variables to give names to your friends, favorite foods, variety of ensembles, cigarettes, drinks, etc. It is easy to see that fragments of the type: IF katJa> = 18 tneN DO; saLL GaStRoNom; saLL tahI; Goto Hata; eND; eLSe Goto VeRa; / * PL / 1 * / GLorING sSest ... MaRINa eQU DURa ... L en, maRUSJa Un sy, aNJUta vhLe LetS, IRINa, DRINk (aGDam) / * ASSemvLeR * / amazing grace, wit and subtle taste. A close examination it is easy to discover that bourgeois writers of books arguing about the subject, which they call "Structured programming" drowning in own contradictions. For example, [Myers], page 63: "The modest goals for running programs not regulated better large-scale projects" but on p. 58: "If a minor addition will make your program suitable for another case, never neglect it. "We are ready to agree with the last assertion, since his skillful application will allow you to tighten development program for any conceivable period. Moreover, the same author a few pages, remembers the notorious principle of ISS (Keuren IT SImrLe, StUrID - keep it simple, Fool! ). Imagine, one day, the head says to you: "Something you very much just all turns out! ". These structural and extremist tendencies in the end, lead to a complete degeneration of programming as creative activities. Limiting the degree of degradation generates methods such as Ashcroft manna [Yoda], which reduce the activity of the programmer to work on an assembly line in Chaplin's movie "New times ". III. Then go playlist The problem of unconditional jumps, fortunately, have not yet found a definitive solution. Among Western youth programming common misconception that the use of the operator To go playlist is highly undesirable. The practice of the leading programmers in our laboratory shows that the use of unconditional transition operator in conjunction with arrays of tags increases the efficiency of programs by an average of 4.2%. With increasing debugging time by 350-400%. If you want to go from this point of the program, go as far as possible. If you have nowhere to go, should be reviewed program. Very successful are the transitions in the body DO loop, especially from other modules. Although translators, as a rule, it prohibits them You can easily cheat by using variables such as management metki.Peredacha a subroutine to bypass the title will bring you many hours of happy meditations on the code completion 0s5. All the inserts in the program should do as follows: after the last statement put the new tag, write the text box, will increase the dimension of the array of labels for 2, passes control to that label from the desired point (Or from somewhere else), check the operator followed To go playlist, the new label, feel free to change the variable label and return. Generally speaking the language in which you would not write a program better if each operator will have its label (as specified in Fortran). The extent of your skills as a programmer in the style of EHV, is defined by: N SIGma (V (I) + W (I)) I = 1 k = -------------------, where (1) N N - number of operators, V (I) - the number of control transfers on the I-th operator; W (I) - the number of possible transitions from I-operator. For k <0.5 You, as a programmer, anywhere not fit. An acceptable ratio 3-4, and Some superprogrammisty have to not less than 12. IV. Modularity. H and K and by about th e y m a n b n ews! Generally ... V. Efficiency. Disputes over what constitutes an effective program, do not cease since when in the gym has earned an M-20. In Today, it came before the casuistic statements like: "Readability program has its effectiveness " [Myers]. We believe that the effectiveness of the program is completely objective and quantified value. No need to regret the time or effort to fight for efficiency - when your program Eventually working, all your costs will be repaid by savings in 1915 and 0.73 kb / sec. That the programmer can assess in advance the effectiveness of its product, it is proposed simple formula: E = + I * t/t1 t/t2, where (2) T1 - time required srU to run your program (if the program is still does not go to the go playlist, T1 = T); t - the time required for output alphanumeric PRINTER pre-prepared text, which is identical to the one that will print your program, when released to go playlist; T2 - the time that your program will run when you debug it completely. I = SQRt (-1) Effectiveness of the program, as can be seen, the magnitude of the complex, which reflects a systematic approach to programming, typical for the method of ANS. Thus, as follows from (2), the timing of writing and debugging programs in no way affect its effectiveness. Many programmers seem to intuitively come to understand this fact and years, improve its program, making it more efficient by reducing the parameter m 2. Incidentally, one of the apologists of "structural programming "[Myers], allowed himself to as follows: "No one in his senses and good memory, will not be programmed in assembler. "And it's about loved one Language supporters EHV! On the contrary! Study assembly - a great way to the top of cognition operating UCS. Following this path, you get a lot of useful knowledge that help you solve some major problems: 1). As a receiving voucher for a moment in the package, to seize undivided srU use at least 1.5 hours, to eliminate the problem of all other users (eg, code S422), stall queue, to deprive the operator the opportunity to remove your job, unhindered obtain the results (despite the established limit paper consumption), and at the same time - all claims of operator service OVT forward in the direction of any department of the Faculty "f"? 2). How to ruin (not erasing) all wrong ND for your package 5050/5061, leaving no traces in rRINtLoG? 3). How to erase the kernel? (Or IrL?) Generally, there is a rich spectrum ways to improve the effectiveness of programs. The authors are well and has long been familiar with one programmer, who recently won the bet a case of beer, raising, for 40 minutes of surface analysis, at least twice the performance of three Fortran programs, taken at random from a trash can on the one Chairs of Faculty "t". Since this fact is absolutely no known leadership, programmers in the style of IOS are coming for many years serene and happy existence programming. VI. Again the modularity. Still, no modularity! (Since modularity is impossible to understand otherwise, as the presence of certain built-in function. Everything else - from the evil one.) Consider yourself worse than others, if you can not able to write a program (if you want call it a module) with a length of more than 1000 operators. If, for objective reasons (They always have) you still have to face the problem of docking, we remember one single rule method SVN: No agreement on the links! In particular, if we have to deal with the programmers of the opposite sex. According to article 94 of the Code, in analyzing the cases of paternity protocol agreement on the bonds is taken into account along with evidence of joint farming. Furthermore, as already emphasized, any restrictions on your imagination, as a programmer, do not bring anything, except to reduce project development time and, thus, reduce the effectiveness of the final product. Treat your head, hanging above the desk a poster: "Programming - too complicated intellectual activities that might have been hoped ties to impose an administrative system which stifles all initiative. "[Van Tassel]. If management response would be more restrained than you'd expect, repaint the door of your lab green most toxic paint colors and disappear for three days, after turning off your home phone [Meyer, Boda]. VII. Debugging. The first commandment programmer, successfully has overcome the barrier of syntactic control - do not hurry. Remember that bad debugged program is always less efficient than not debugged. Do not print more than one variable for one run. Obtained Listings (print), immediately dispose of (avoid! Sm.V). On the other hand, it is useful to store in a single copy protocol compiler with the worst (it's easy) quality print so that in case of unplanned when the head would be to say: "You see, the conditions in which to work!" Of course, the diagnostic messages to be cut, but better - not neatly cut short. (For those who are programmers Fortran or assembly language, it is recommended to acquire some skills with scissors and glue). If you store the source code to NMD, Never check cards IevUrDte and so as not to deprive themselves of pleasant surprises! Moreover, to check punching - bad taste and a sign of disrespect vile a sweet and charming girl, spending the best years of his youth on punching holes in your punch cards. When finished debugging, operation begins! None, self-respecting programmer will not allow his beloved child, the fruit of his long labors and exploiting the suffering of some strangers. A few words about testing. Nobody knows what exactly is the test that is the ultimate goal and what the results should be obtained. In the method of EHV is considered to be testing completed, if the execution fails with a return code of 0000, even if raw data differ by at least one number (or all - if you maximalist). After completing the testing phase, Destroy the source code. Only in this If you can be absolutely sure that your program no one no harm, and it will remain as effective as ever. -----------------------------------------********* ********************************* ----------------------------------------- +---------------------+ | The Life and Extraordinary | | Adventure | | Cyril - hacker. | +---------------------+ Once, on a maths lesson, Cyril did not able to multiply 200 by 400 - the result has exceeded 65535. In my head rang: "Overrun!" One day, Cyril walking along a brick wall. Suddenly sees - it goes bulldozer. "Packer! - Time to think Cyril. Once, when Cyril was 6 years old, Dad took him to work. There he planted his computer - playing Goody. When Cyril played enough, he dismantled the computer - as well as All cars, in which he played before. Once, Kirill 3:00 stood before the traffic lights - could not understand what was on the video: a Hercules'a - 2 colors, the CGA - 4, the EGA - 16, with VGA - 256, with XGA - 65535 and 3 - well, no one! Do you know what makes Cyril when it's hot? He turns the computer the other side - to fan themselves. Do you know what makes Cyril when he was cold? He turns off the AT-486 and include EU-1840. After 5 minutes, it heats up like a stove. One day, a lesson of physics, Cyril received a rate in joules. Error types! " - he thought. One day, Cyril shorn. "Is not formatted!" - He thought. One day, Cyril saw that his head drops a brick. "It looks like Tetris!" - had time to think about it. One day, Cyril's birthday gave a gun. "Why did it to me!?" - Cyril surprised. He answered the question: "But you as he asked the 'Winchester'!?. Did you know that Kirill said instead of "Hello" when off-hook? "Connect 2400! Do you know how Cyril dials the phone number? First he tries to recruit ATDP, and when he realizes that this is impossible, it changes all 1 to 7, 2 to 8, and 3 to 9. And only then gaining the resulting Room - the blind, both on the computer. Do you know how Cyril wrote? Odd line - from left to right, and even - right to left, like a printer. One day, Cyril took the print on a typewriter. He could not understand why, when he presses the "slaughter" last entered character is not deleted. Once, when the tube heard the busy tone, Cyril long sought ESC on the phone. He finally found it, inside the unit. Cyril respects the sort only the bubble and a hatchet. One day, Cyril was sent for boron. He Also, instead of pharmacy began to call BorLand. There first did not understand. And then we decided, it was some Russian aid organization. One day, Cyril called a brake. He long thought, what a brake - a working or parking. Then he decided to - working with computer control system. Do you know why the teacher checks Cyril of math is much longer than others? They do not clear with what he reduces zeros. Do you know why Cyril before as a sandwich, carefully inspect it? Afraid of what's inside can be a gray mouse, as it happened once. He then broke about her plastic body two teeth. Once, when I first saw Cyril starry sky, he was surprised that the star hardly blink. Moreover, when the fade for some reason do not change color as the Norton Commander,. One day, Cyril walking down the street and saw on the pavement by someone dropped by a thing. Floppy! " - Happily he thought, and bent down and raised. But it turned out to be plump wallet. "Sorry!" - Cyril and thought, even without looking at him, threw away. (In flight out of it fell out a few hundred). One day, Cyril asked to bring a guitar. He brought as much 5, and even a piano-on diskette for "Streem Tracker'a. One day, Cyril accidentally put the floppy in the slot between the two drives. Then he turned the computer upside down and shook it for a long time, and pounded on it, until the diskette is not fallen out. Do you know why Cyril could only shoot a pistol? He pulls the firing pin with the thumb, as in the joystick. Do you know what makes Cyril when Floppy is so bad that not even formatted on the computer? It takes a microscope, a magnet and a hammer, and ... Formats hand - where a magnet, and where the hammer. One day, Cyril looked on with pity a classmate who could not count in mind that 256 square will be 65536. "Poor man, I forgot at home Mathematics coprocessor, "- he thought. Once, when the history lesson classmate Cyril said that the Great October Socialist Revolution took place in 1918, Cyril thought: "I poor memory parity error! " Once, on a maths lesson, Cyril computes the sum of an infinite convergent series. Counted them, looked at the answer - did not match. "Checksum error!" - Thought of Cyril. He counted them and got this same result. Then he looked again condition and realized that he had it wrong Probably copied it. "Error reading", came to Cyril. Then he began to count again, but he suddenly came to an end notebook. "Overflow!" - Cyril decided and did not address further - he decided that the decision error overflow would be sufficient. One day, Cyril, as the hacker asked "Hack" Arcanoid. He has done this - all wall Arcanoid'e were "hacked" - he drew on them a crack. Do you know how to distinguish Cyril High Density floppy disk from the Double and Single Density? He brings to the most magnetic coating match - that the fire touched it, and then sees the other side. If the shine - the High Density. Once, Cyril asked how a computer works. He said: "Watching what. IBM - silently, DCK - PPPP-boom-BUMMY-rrrrzz and SM - does not work at all-time hangs. " Do you know how Cyril photographs? He puts the bulb, click on "Descent" and then holds the lens along the subject matter - as a scanner, then releases the shutter and starts looking at the camera screen - see what happened. One day, Cyril decided to make an antivirus against all viruses and did! Rather, he found - it was an autoclave with temperature up 300 degrees Celsius. Do you know how Cyril playing volleyball? Head! (In the literal sense.) Moreover, only his head and nose - as the Arcade Voleyball. Do you know how Cyril opens the door? He tries to dial in the air, as keyboard "Open Door" and then wonders why the door does not open. Did you know that Cyril puts a on chairs instead of buttons? Circuits - legs up. Once, when Cyril listened to the tape, he suddenly began to "chew" film. Cyril and twitched for a long time sticking to the front panel - in search of Reset'a. One day, Cyril had a computer. He did not want to wake up that fell into a lethargic sleep. Once, Cyril asked the key to the trunk to open and unpack it, he replied: "-e - Extract". Do you know why Cyril does not like icing? 3.5 floppy he loves more than 5.25. Do you know what made Cyril diskettes, after accidentally left them under the light of 500 candles? He threw away the plastic casing melted and stuck floppy disk in ordinary envelopes, do not forget to affix stamps. Once, when I first saw Cyril Rembrandt, he thought: "If I had the same computer, as he does, I would not that be painted! " -------------------------------------------------- -------------------------------- FoR SYStem aNaLISISt oNLY "Imagine that you buy the furniture ... " February 24 --------- Finally! Exchanged their close placement to a new and improved two-room apartment project: "SVS 6.1/M9." She told me very Good: beautiful, perfect for housing and work. March 1 ------ Began to move. Somewhat puzzled. The door is too narrow, some of our furniture is not climbs. Threw the cabinet, sideboard, desk. Do not worry, buy new ones. Sofa managed to push through, but found a strange thing: as soon as I him sit down, the lights go out around the home. Also have to be replaced. Sorry, very place a sofa, now there are not released. The bathroom was occupied by the ingenious device. A neighbor said that he needed for predicting earthquakes. The device looks like a box in which sat two evil snakes with sensors on the tail. In my opinion, poisonous. That the wife could use the bathroom, had to pull the apparatus into the garbage disposal. A neighbor said he did the same. The kitchen at the stove huge niche with a badly smeary inscription: "noR kItsneN somvINe. Begin to suspect that a house designed not for our area. We have earthquakes do not happen. In general, one can live. The only bad thing that bath flow and not the phone work. TV shows only one program: the some indications that the Indian. March 14 --------- Long struggled with rosettes. In order to avoid shock, they are fixed under the ceiling. I asked a staff electrician take until the current radio outlet that I absolutely do not need, but he said that the house is arranged like this: if you disable radio, begins to howl fire alarm, so it's best to be patient, after 7-8 months they should get the socket version 02, which can be attached to the wall in any place with special glue. True, until the glue is bad and keep all outlets still will not. It turned out, why not a TV. It turns out that the house is installed antenna improved construction and televisions with appropriate modifications have not yet started producing. I walk around the apartment with caution. All time running into sharp corners, from time to time with a ringing crash parketina, sofa throw, but the light still goes out often. April 19 -------- Thank God, though the phone was repaired. Master said that he was connected to the TV cable. But TV is now nothing takes, even India. A neighbor said that in my apartment should be a third room. On the plan it does not, because the plan the old, the new year will and a half. Now I understand why the door at the end of the corridor. Where can you find her key? Applied to the housing office, but there, as usual, the damn thing do not know. I watched the outbreak of the exchange. May 26 ----- Still, I am in luck! Traded this lousy apartment. Tomorrow the move. Remarkable house project svm2.0. Modern amenities, open space, automatics. Lay-free, easily rebuilt. For example, on my floor are an Indian wigwam, bamboo hut and two Qurna hut. Allowed to do whatever they want, for example, breeding fires right in the corridor. Soundproofing is absolute. May 29 ----- Gradually settle in the new location. Neighbors tame. One, which in the long hut keeps a cow and a goat. A little dirty and uncomfortable. Poorly with electricity: inmate tent is freezing and keeps constantly included a huge fireplace, which goes almost all the energy, so we have quite dark. One thing confuses me: even when the fireplace fuses, lamps are lit in the half-intensity. Qurna outrageous excess smoke, breathe absolutely nothing. But no problems with the furniture, though the room is empty. Once you need a chair or cabinet, the operator on duty immediately sends you the requested item among cash. This is called "virtual furniture". May 30 ------- Turned up the case moved to another floor. There are no wigwams, the neighbors are very decent. True, the elevator hefty cave, inside which in total darkness snores something big. The commandant said that it will sleep until the end of the quarter, so that nothing dangerous, just in the last decade the best of the apartments do not come out. It seems that virtual beds are not as good as I thought. Most people sleeping at the same time, they need real beds and those at all lacking. In addition, the operator is constantly confused and picks up the bed before it is released. There were some embarrassing incidents. However, Commandant said that we were lucky. In the first series of SVM were virtual bathroom. It is difficult to refuse. He is one to all, so each floor is an intermediate silo for temporary storage debris. It happens that trash lingers there for a week. Smell around like a cave. June 16 ------ Soon the end of the quarter. Snoring in a cave became restless, occasionally punctuated by unscrupulous slovami.Zapassya products for two weeks. Today I saw a dream and upset. Dreamed that I live in his former personal apartment, where all things are mine, and not virtual, and all the equipment works as expected. Tomorrow I'll go watch outbreak of the exchange ...
Other articles:
Similar articles:
В этот день... 23 November