How Do You Structure Your Code to Avoid Writing Out the Same Ccode Again
You may already accept used software, perhaps for word processing or spreadsheets, to solve problems. Perhaps now you are curious to learn how programmers write software. A program is a set up of footstep-by-stride instructions that directs the figurer to do the tasks yous want it to do and produce the results you want.
In that location are at least three good reasons for learning programming:
- Programming helps you lot sympathize computers. The estimator is only a tool. If you learn how to write unproblematic programs, yous will proceeds more knowledge most how a computer works.
- Writing a few unproblematic programs increases your confidence level. Many people observe smashing personal satisfaction in creating a set of instructions that solve a problem.
- Learning programming lets yous find out quickly whether you similar programming and whether you take the belittling turn of mind programmers need. Even if you decide that programming is not for yous, understanding the process certainly volition increment your appreciation of what programmers and computers can do.
A set of rules that provides a style of telling a computer what operations to perform is called a programming language. There is not, however, simply one programming language; there are many. In this chapter you volition acquire about controlling a computer through the process of programming. Yous may even notice that you might want to become a developer.
An important betoken before nosotros proceed: Yous volition not exist a programmer when you terminate reading this affiliate or even when you lot terminate reading the final chapter. Programming proficiency takes practice and training beyond the scope of this book. However, y'all will become acquainted with how programmers develop solutions to a multifariousness of problems.
In general, the programmer's chore is to convert problem solutions into instructions for the estimator. That is, the programmer prepares the instructions of a figurer program and runs those instructions on the computer, tests the program to see if information technology is working properly, and makes corrections to the programme. The programmer also writes a study on the plan. These activities are all done for the purpose of helping a user fill a need, such as paying employees, billing customers, or admitting students to higher.
The programming activities just described could be done, perhaps, as solo activities, just a programmer typically interacts with a variety of people. For example, if a program is part of a system of several programs, the developer coordinates with other programmers to make sure that the programs fit together well. If you were a programmer, you lot might likewise take coordination meetings with users, managers, systems analysts, and with peers who evaluate your work-but as you evaluate theirs.
Let usa turn to the programming procedure.
Developing a plan involves steps similar to whatever problem-solving task. At that place are five main ingredients in the programming process:
- Defining the problem
- Planning the solution
- Coding the program
- Testing the program
- Documenting the plan
Allow us discuss each of these in turn.
- Defining the Trouble
Suppose that, as a programmer, y'all are contacted because your services are needed. You lot meet with users from the customer organization to analyze the trouble, or you meet with a systems annotator who outlines the projection. Specifically, the task of defining the problem consists of identifying what it is you lot know (input-given data), and what it is yous desire to obtain (output-the result). Eventually, you produce a written agreement that, among other things, specifies the kind of input, processing, and output required. This is not a simple process. - Planning the Solution
Figure 1: Flow Chart Symbols and Period Chart For Mailing Letter Pseudocode is an English-similar nonstandard language that lets you lot state your solution with more precision than you tin can in evidently English but with less precision than is required when using a formal programming language. Pseudocode permits you to focus on the program logic without having to be concerned but yet about the precise syntax of a particular programming language. Still, pseudocode is not executable on the calculator. We will illustrate these after in this chapter, when we focus on language examples.
- Coding the Program
Equally the programmer, your adjacent step is to lawmaking the plan-that is, to limited your solution in a programming language. You will translate the logic from the flowchart or pseudocode-or some other tool-to a programming language. Every bit nosotros accept already noted, a programming language is a ready of rules that provides a way of instructing the computer what operations to perform. There are many programming languages: Bones, COBOL, Pascal, FORTRAN, and C are some examples. You lot may find yourself working with i or more of these. We volition discuss the different types of languages in detail later in this chapter.Although programming languages operate grammatically, somewhat similar the English linguistic communication, they are much more precise. To get your program to work, y'all have to follow exactly the rules-the syntax-of the language you lot are using. Of course, using the language correctly is no guarantee that your plan will piece of work, any more than speaking grammatically right English ways y'all know what y'all are talking about. The betoken is that right use of the language is the required beginning step. Then your coded programme must exist keyed, probably using a terminal or personal figurer, in a grade the computer tin empathise.
Ane more than note hither: Programmers usually apply a text editor, which is somewhat like a give-and-take processing program, to create a file that contains the programme. However, equally a beginner, you will probably desire to write your program code on newspaper start.
- Testing the Plan
Some experts insist that a well-designed programme can be written correctly the first time. In fact, they affirm that there are mathematical means to prove that a program is correct. Yet, the imperfections of the world are notwithstanding with us, so most programmers get used to the idea that their newly written programs probably have a few errors. This is a bit discouraging at first, since programmers tend to be precise, conscientious, particular-oriented people who take pride in their work. Still, in that location are many opportunities to innovate mistakes into programs, and you, just as those who have gone before you, will probably find several of them.Somewhen, afterward coding the program, you must prepare to test it on the computer. This step involves these phases:
- Desk-bound-checking. This stage, similar to proofreading, is sometimes avoided by the programmer who is looking for a shortcut and is eager to run the program on the figurer once it is written. However, with careful desk-bound-checking yous may notice several errors and possibly salvage yourself time in the long run. In desk-bound-checking yous only sit downward and mentally trace, or cheque, the logic of the programme to attempt to ensure that it is mistake-free and workable. Many organizations take this phase a pace further with a walkthrough, a process in which a group of programmers-your peers-review your program and offer suggestions in a collegial mode.
- Translating. A translator is a programme that (1) checks the syntax of your program to brand sure the programming language was used correctly, giving you all the syntax-fault letters, chosen diagnostics, and (2) then translates your program into a form the computer can understand. A by-production of the process is that the translator tells you if you have improperly used the programming language in some way. These types of mistakes are called syntax errors. The translator produces descriptive error messages. For instance, if in FORTRAN you mistakenly write Northward=2 *(I+J))-which has two closing parentheses instead of 1-y'all volition become a message that says, "UNMATCHED PARENTHESES." (Different translators may provide dissimilar diction for fault messages.) Programs are most normally translated by a compiler. A compiler translates your entire program at one time. The translation involves your original program, called a source module, which is transformed by a compiler into an object module. Prewritten programs from a system library may be added during the link/load phase, which results in a load module. The load module can then exist executed by the computer.
- Debugging. A term used extensively in programming, debugging means detecting, locating, and correcting bugs (mistakes), usually by running the plan. These bugs are logic errors, such as telling a computer to repeat an operation but not telling it how to end repeating. In this phase you run the program using test data that y'all devise. You lot must plan the examination data carefully to make sure y'all test every part of the program.
- Documenting the Plan
Documenting is an ongoing, necessary process, although, equally many programmers are, you lot may exist eager to pursue more exciting computer-centered activities. Documentation is a written detailed description of the programming cycle and specific facts about the program. Typical program documentation materials include the origin and nature of the trouble, a brief narrative description of the plan, logic tools such as flowcharts and pseudocode, data-record descriptions, programme listings, and testing results. Comments in the program itself are also considered an essential part of documentation. Many programmers document as they lawmaking. In a broader sense, plan documentation tin can exist part of the documentation for an entire system.The wise programmer continues to document the program throughout its design, development, and testing. Documentation is needed to supplement human memory and to help organize programme planning. Also, documentation is disquisitional to communicate with others who have an interest in the program, especially other programmers who may be office of a programming team. And, since turnover is high in the computer industry, written documentation is needed then that those who come afterwards yous can make whatsoever necessary modifications in the programme or track downwardly any errors that you missed.
At that place is a shortage of qualified personnel in the computer field. Before you bring together their ranks, consider the advantages of the computer field and what information technology takes to succeed in it.
The Joys of the Field
Although many people make career changes into the computer field, few cull to leave it. In fact, surveys of computer professionals, especially programmers, consistently report a loftier level of job satisfaction. There are several reasons for this contentment. I is the claiming-most jobs in the figurer manufacture are not routine. Some other is security, since established calculator professionals tin can usually detect work. And that work pays well-you will probably not be rich, but you should exist comfortable. The reckoner industry has historically been a rewarding place for women and minorities. And, finally, the industry holds endless fascination since information technology is always changing.
What It Takes
You lot need, of course, some credentials, most oftentimes a ii- or four-year degree in estimator information systems or calculator science. The requirements and salaries vary by the organisation and the region, then we volition not dwell on these here. Across that, the person virtually likely to land a job and move up the career ladder is the i with excellent communication skills, both oral and written . These are also the qualities that tin be observed past potential employers in an interview. Promotions are sometimes tied to advanced degrees (an M.B.A. or an Chiliad.S. in computer scientific discipline).
Open Doors
The overall outlook for the reckoner field is promising. The Bureau of Labor Statistics shows, through the year 2010, a 72 percent increase in programmers and a 69 percent increment in system apply today, and nosotros will talk over the well-nigh popular ones later on In the chapter. Before we plow to specific languages, however, nosotros need to discuss levels of language.
Programming languages are said to be "lower" or "higher," depending on how shut they are to the language the calculator itself uses (Os and 1s = low) or to the linguistic communication people utilise (more English language-like-high). We will consider five levels of language. They are numbered 1 through 5 to stand for to levels, or generations. In terms of ease of use and capabilities, each generation is an comeback over its predecessors. The v generations of languages are
- Automobile language
- Assembly languages
- High-level languages
- Very loftier-level languages
- Natural languages
Let us look at each of these categories.
Motorcar Language
Humans practise not like to deal in numbers alone-they prefer messages and words. But, strictly speaking, numbers are what machine language is. This lowest level of language, motorcar linguistic communication, represents information and program instructions as 1s and Os-binary digits corresponding to the on and off electrical states in the computer. Each blazon of figurer has its own machine language. In the early days of computing, programmers had rudimentary systems for combining numbers to represent instructions such equally add and compare. Archaic by today's standards, the programs were not convenient for people to read and apply. The estimator manufacture quickly moved to develop assembly languages.
Associates Languages
The programmer who uses an assembly language requires a translator to convert the assembly linguistic communication plan into motorcar language. A translator is needed because car language is the merely language the calculator can actually execute. The translator is an assembler programme, as well referred to as an assembler. Information technology takes the programs written in assembly language and turns them into machine language. Programmers demand not worry well-nigh the translating aspect; they demand only write programs in associates linguistic communication. The translation is taken care of by the assembler.
Although assembly languages stand for a step forward, they still have many disadvantages. A fundamental disadvantage is that associates language is detailed in the extreme, making assembly programming repetitive, irksome, and fault prone. This drawback is apparent in the plan in Figure 2. Associates linguistic communication may be easier to read than machine language, but it is still wearisome.
Loftier-Level Languages
The first widespread use of loftier-level languages in the early 1960s transformed programming into something quite different from what it had been. Programs were written in an English-like style, thus making them more convenient to use. As a outcome, a programmer could reach more than with less effort, and programs could at present direct much more circuitous tasks.
These then-called third-generation languages spurred the bully increase in data processing that characterized the 1960s and 1970s. During that time the number of mainframes in use increased from hundreds to tens of thousands. The impact of tertiary-generation languages on our lodge has been enormous.
Of course, a translator is needed to translate the symbolic statements of a high-level language into computer-executable machine language; this translator is usually a compiler. There are many compilers for each linguistic communication and one for each type of reckoner. Since the machine language generated by one computer'southward COBOL compiler, for example, is not the machine language of some other computer, information technology is necessary to have a COBOL compiler for each blazon of computer on which COBOL programs are to be run. Keep in mind, however, that even though a given plan would exist compiled to different machine linguistic communication versions on different machines, the source program itself-the COBOL version-can be essentially identical on each machine.
Some languages are created to serve a specific purpose, such as decision-making industrial robots or creating graphics. Many languages, however, are extraordinarily flexible and are considered to be general-purpose. In the by the bulk of programming applications were written in BASIC, FORTRAN, or COBOL-all general-purpose languages. In improver to these three, another popular high-level language is C, which nosotros will discuss later.
Very Loftier-Level Languages
Languages called very high-level languages are often known by their generation number, that is, they are chosen 4th-generation languages or, more simply, 4GLs.
Definition
Will the real fourth-generation languages please stand up? There is no consensus about what constitutes a fourth-generation linguistic communication. The 4GLs are substantially autograph programming languages. An performance that requires hundreds of lines in a third-generation language such as COBOL typically requires simply five to ten lines in a 4GL. However, beyond the basic benchmark of conciseness, 4GLs are difficult to describe.
Characteristics
Fourth-generation languages share some characteristics. The first is that they make a true interruption with the prior generation-they are basically non-procedural. A procedural linguistic communication tells the estimator how a task is done: Add this, compare that, exercise this if something is true, and so forth-a very specific step-by-step procedure. The beginning three generations of languages are all procedural. In a nonprocedural language, the concept changes. Here, users ascertain only what they desire the computer to practice; the user does not provide the details of simply how it is to be done. Obviously, it is a lot easier and faster simply to say what you lot want rather than how to become it. This leads the states to the issue of productivity, a cardinal characteristic of 4th-generation languages.
Productivity
Folklore has it that fourth-generation languages can improve productivity by a factor of 5 to l. The folklore is true. Most experts say the boilerplate comeback factor is most 10-that is, you can exist x times more productive in a 4th-generation language than in a third-generation language. Consider this request: Produce a study showing the total units sold for each product, by customer, in each calendar month and twelvemonth, and with a subtotal for each client. In add-on, each new customer must commencement on a new page. A 4GL request looks something similar this:
Table FILE SALES SUM UNITS BY Calendar month BY Client BY PRODUCT ON CUSTOMER SUBTOTAL Folio Suspension ENDFifty-fifty though some training is required to do even this much, you can see that it is pretty simple. The tertiary-generation language COBOL, however, typically requires over 500 statements to fulfill the same asking. If we define productivity every bit producing equivalent results in less fourth dimension, then fourth-generation languages clearly increase productivity.
Downside
Quaternary-generation languages are not all peaches and cream and productivity. The 4GLs are still evolving, and that which is still evolving cannot be fully defined or standardized. What is more, since many 4GLs are easy to use, they concenter a big number of new users, who may then overcrowd the computer arrangement. I of the main criticisms is that the new languages lack the necessary control and flexibility when it comes to planning how you want the output to look. A common perception of 4GLs is that they exercise non make efficient utilise of machine resources; however, the benefits of getting a plan finished more quickly can far outweigh the extra costs of running information technology.
Benefits
Fourth-generation languages are beneficial because
- They are results-oriented; they emphasize what instead of how.
- They improve productivity considering programs are easy to write and change.
- They can exist used with a minimum of grooming by both programmers and nonprogrammers.
- They shield users from needing an awareness of hardware and program structure.
It was not long ago that few people believed that 4GLs would always be able to replace third-generation languages. These 4GL languages are being used, but in a very limited manner.
Query Languages
A variation on fourth-generation languages are query languages, which tin exist used to retrieve data from databases. Information is commonly added to databases co-ordinate to a programme, and planned reports may also be produced. But what about a user who needs an unscheduled report or a report that differs somehow from the standard reports? A user can learn a query linguistic communication adequately hands so be able to input a request and receive the resulting report right on his or her own terminal or personal reckoner. A standardized query language, which tin be used with several dissimilar commercial database programs, is Structured Query Language, popularly known as SQL. Other pop query languages are Query-by-Example, known as QBE, and Intellect.
Natural Languages
The word "natural" has go nearly as popular in computing circles as it has in the supermarket. 5th-generation languages are, as yous may guess, even more ill-defined than 4th-generation languages. They are most frequently called natural languages because of their resemblance to the "natural" spoken English language. And, to the manager new to computers for whom these languages are at present aimed, natural ways human-like. Instead of being forced to key correct commands and data names in correct order, a manager tells the computer what to do past keying in his or her own words.
Natural languages are sometimes referred to every bit knowledge-based languages, because natural languages are used to interact with a base of knowledge on some subject field. The use of a natural linguistic communication to access a knowledge base is called a knowledge-based system.
Consider this request that could exist given in the 4GL Focus: "SUM ORDERS Past Date By REGION." If we alter the request and, still in Focus, say something like "Give me the dates and the regions after you've added up the orders," the computer volition spit dorsum the convenient version of "You lot've got to be kidding" and give upward. Merely some natural languages can handle such a request. Users tin can relax the construction of their requests and increase the freedom of their interaction with the data.
Here is a typical natural language request:
REPORT THE Base of operations SALARY, COMMISSIONS AND YEARS OF SERVICE BROKEN Down BY Land AND City FOR SALESCLERKS IN NEW JERSEY AND MASSACHUSETTS.
You can hardly go closer to conversational English than that.
An instance of a natural language is shown in Effigy three. Natural languages excel at easy data access. Indeed, the nigh mutual application for natural languages is interacting with databases.
How do you choose the language with which to write your program?
In that location are several possibilities:
- In a work surround, your manager may prescript that anybody on your project will use a certain language.
- You may utilize a certain linguistic communication, particularly in a business environment, based on the need to interface with other programs; if two programs are to piece of work together, it is easiest if they are written in the same language.
- You may choose a language based on its suitability for the job. For case, a concern program that handles big files may be best written in the business linguistic communication COBOL.
- If a program is to be run on dissimilar computers, it must be written in a language that is portable-suitable on each blazon of computer-so that the program need be written merely once.
- You lot may be express past the availability of the language. Not all languages are available in all installations or on all computers.
- The language may be express to the expertise of the programmer; that is, the program may have to be written in a language the bachelor programmer knows.
- Mayhap the simplest reason, one that applies to many amateur programmers, is that they know the language called Bones because information technology came with-or was inexpensively purchased with-their personal computers.
This chapter will present programs written in some of these languages. You volition also meet output produced past each program. Each program is designed to find the average of 3 numbers; the resulting average is shown in the sample output matching each program. Since all programs perform the same task, you lot volition see some of the differences and similarities among the languages. We do not expect you to understand these programs; they are here merely to allow you lot glimpse each language. Figure 4 presents the flowchart and pseudocode for the task of averaging numbers. As we discuss each language, we will provide a plan for averaging numbers that follows the logic shown in this effigy.
FORTRAN: The First High-Level Language
FORTRAN is noted for its brevity, and this characteristic is part of the reason why it remains popular. This linguistic communication is very good at serving its primary purpose, which is execution of circuitous formulas such every bit those used in economic assay and engineering. Although in the past it was considered limited in regard to file processing or data processing, its capabilities have been greatly improved.
Non all programs are organized in the same way. System varies co-ordinate to the linguistic communication used. In many languages (such as COBOL), programs are divided into a series of parts. FORTRAN programs are non equanimous of different parts (although it is possible to link FORTRAN programs together); a FORTRAN program consists of statements one later on the other. Different types of information are identified every bit the data is used. Descriptions for data records appear in format statements that back-trail the READ and WRITE statements. Effigy 5 shows a FORTRAN program and a sample output from the programme.
COBOL: The Linguistic communication of Business organization
The U.Due south. regime offered encouragement by insisting that anyone attempting to win government contracts for computer-related projects had to utilize COBOL. The American National Standards Constitute first standardized COBOL in 1968 and, in 1974, issued standards for another version known equally ANSI-COBOL. Later on more than seven controversial years of industry debate, the standard known every bit COBOL 85 was approved, making COBOL a more usable mod-day software tool. The principal benefit of standardization is that COBOL is relatively machine independent- that is, a programme written for one blazon of figurer tin can be run with only slight modifications on some other type for which a COBOL compiler has been developed.
COBOL is very good for processing large files and performing relatively uncomplicated concern calculations, such as payroll or interest. A noteworthy feature of COBOL is that it is English-like-far more so than FORTRAN or Bones. The variable names are set upwards in such a way that, even if you know nothing about programming, you can still understand what the plan does. For example:
IF SALES-Amount IS GREATER THAN SALES-QUOTA COMPUTE Committee = MAX-Charge per unit * SALES-Amount ELSE COMPUTE Commission = MIN-Rate * SALES-AMOUNT.
Once you sympathise programming principles, information technology is not too difficult to add together COBOL to your repertoire. COBOL can be used for but about any task related to business programming; indeed, it is especially suited to processing alphanumeric information such as street addresses, purchased items, and dollar amounts-the data of business. However, the feature that makes COBOL then useful-its English-similar advent and easy readability-is also a weakness because a COBOL program tin exist incredibly verbose. A programmer seldom knocks out a quick COBOL program. In fact, there is inappreciably such a thing as a quick COBOL program; in that location are just as well many program lines to write, even to attain a simple task. For speed and simplicity, Basic, FORTRAN, and Pascal are probably better bets.
As you can see in Figure half-dozen, a COBOL plan is divided into four parts called divisions. The identification division identifies the program by proper noun and often contains helpful comments too. The environment segmentation describes the computer on which the plan volition be compiled and executed. It also relates each file of the programme to the specific concrete device, such as the tape drive or printer, that will read or write the file. The data division contains details about the information candy by the plan, such as type of characters (whether numeric or alphanumeric), number of characters, and placement of decimal points. The procedure division contains the statements that give the calculator specific instructions to comport out the logic of the program.
It has been fashionable for some time to criticize COBOL: Information technology is old-fashioned, cumbersome, and inelegant. In fact, some companies, devoted to fast, nimble program development, are converting to the more trendy language C. But COBOL, with more than than 30 years of staying power, is however famous for its clear code, which is easy to read and debug.
BASIC: For Beginners and Others
The primary characteristic of Bones is ane that may be of interest to many readers of this book: BASIC is piece of cake to learn, even for a person who has never programmed earlier. Thus, the language is used often to railroad train students in the classroom. BASIC is also used past non-programming people, such equally engineers, who find information technology useful in problem solving. For many years, Basic was looked down on past "existent programmers," who complained that it had besides many limitations and was non suitable for complex tasks. Newer versions, such every bit Microsoft's QuickBASIC, include substantial improvements. An example of a Basic plan and its output are shown in Figure seven.
Pascal: The Linguistic communication of Simplicity
Named for Blaise Pascal, the seventeenth-century French mathematician, Pascal was developed every bit a pedagogy language by a Swiss computer scientist, Niklaus Wirth, and first became available in 1971. Since that time it has become quite popular, first in Europe and at present in the U.s., specially in universities and colleges offering informatics programs.
The foremost feature of Pascal is that it is simpler than other languages -it has fewer features and is less wordy than nearly. In improver to the popularity of Pascal in college information science departments, the linguistic communication has also made large inroads in the personal calculator market as a simple yet sophisticated alternative to Bones. Over the years new versions accept improved on the original capabilities of Pascal. Today, Borland'south Turbo Pascal leads the Pascal world because its designers eliminated about of the drawbacks of the original Pascal. Turbo Pascal is used by the business community and is often the choice of nonprofessional programmers who demand to write their own programs.
Ada: Named for the Countess
Is any software worth over $25 billion? Not whatsoever more, according to Defense Department experts. In 1974 the U.South. Department of Defense force had spent that amount on all kinds of software for a hodgepodge of languages for its needs. The answer to this problem turned out to be a new language chosen Ada-named for Countess Ada Lovelace, "the kickoff programmer" (see Appendix B). Sponsored by the Pentagon, Ada was originally intended to be a standard language for weapons systems, but it has likewise been used successfully for commercial applications. Introduced in 1980, Ada has the support not only of the defense force establishment only likewise of such industry heavyweights as IBM and Intel, and Ada is even available for some personal computers. Although some experts have said Ada is too complex, others say that it is piece of cake to learn and that it volition increase productivity. Indeed, some experts believe that it is by far a superior commercial language to such standbys equally COBOL and FORTRAN.
Widespread employ of Ada is considered unlikely by many experts. Although there are many reasons for this (the military services, for instance, have different levels of enthusiasm for it), probably its size- which may hinder its apply on personal computers-and complexity are the greatest barriers. Although the Section of Defense is a market in itself, Ada has not caught on to the extent that Pascal and C have, specially in the concern customs.
C, C++, Coffee, and Javascript
A language invented by Dennis Ritchie at Bell Labs in 1972, C produces code that approaches assembly language in efficiency while even so offering high-level linguistic communication features. C was originally designed to write systems software but is now considered a general-purpose language. C contains some of the all-time features from other languages, including Pascal. C compilers are unproblematic and compact. A key attraction is that information technology is independent of the architecture of whatsoever item automobile, a fact that contributes to the portability of C programs. That is, a C program can be run on more than one type of estimator after information technology has been compiled for that machine.
Although C is simple and elegant, information technology is not elementary to acquire. Information technology was developed for gifted programmers, and the learning curve may be steep. Straightforward tasks may be solved easily in C, but complex issues crave mastery of the language.
An interesting side note is that the availability of C on personal computers has greatly enhanced the value of personal computers for budding software entrepreneurs. A cottage software industry tin can utilize the aforementioned basic tool-the language C-used past established software companies such equally Microsoft and Borland. Today C is has been replaced by its enhanced cousin, C++. C++ in turn is beingness challenged by spider web-aware languages like Java and Javascript, that look and act a lot like C++, but add features to support working with networked computers, among other things.
Source: https://homepage.cs.uri.edu/faculty/wolfe/book/Readings/Reading13.htm
0 Response to "How Do You Structure Your Code to Avoid Writing Out the Same Ccode Again"
Post a Comment