What is software?
a computer program is a series of commands executed by the computer. However, the computer is only capable of processing elements binary, ie a series of 0s and 1s. Therefore, we need a programming language to write legibly, ie commands that humans can understand (being similar to their own language) commands that the computer must be running.
These programs are then translated to machine language (binary) through a compiler.
The method of writing a program is closely tied to programming language chosen, as there are many different types. In addition, the compiler must match the chosen language, every programming language has its own compiler (except interpreted languages).
Overall, the program is a simple text file (written using a word processor or text editor) called source file.)
The source file contains lines of program source code calls. This source file must be compiled once completed. The compilation was done in two steps:
- The compiler transforms the source code into object code and stores it in a object file, ie translates the source file into machine language (some compilers also create a file in assembler language similar to machine language as it has basic functions, but can be read by humans.
- Then , the compiler calls an editor links (or assembler ) that allows you to insert additional elements (functions and libraries) referred to the program within the final file, but not stored in the source file.
then creates a executable file that contains all elements required by the program to function independent (in Microsoft Windows or MS-DOS this file will have . exe ).
What is an Algorithm?
Definition: Algorithm
We can find many definitions of algorithm in programming texts, all very similar:
- ordered and finite set of steps that can find the solution of a problem .
- A sequence of steps leading to the completion of a task.
- exact description of the sequence in which they must perform a set of activities that to solve a particular problem or procedure.
- Joint statements / native language instruction, which express the logic of a program.
- is a system by which a solution is reached, taking into account that must be defined, finite and precise.
- Any prescription, process, routine, method, procedure, technique, formula to solve a particular problem.
- Set specific and detailed instructions by which a given action is achieved.
- set of rules that allow a particular outcome based on certain rules defined.
- precise description of a sequence of instructions it allows to carry out work in a finite number of steps.
- A set of symbols and procedures used in carrying out a calculation.
- finite sequence of instructions, rules or steps that accurately describe the operations of a computer must perform to carry out a task in a more finite time. [Donald E. Knuth, 1968]
- description of a pattern of behavior expressed by a finite reportorio actions and basic information, identified, well understood and feasible a priori. This code lexicon denom [Pierre Scholl, 1988]
- An algorithm is a finite set of defined steps, structured in time and formulated based on a finite set of unambiguous rules that provide a method for providing a solution or indicate the absence of such a problem in a given time. [Rodolfo Quispe-Otazu, 2004]
key features shall comply algorithm are:
- be defined : No ambiguity, every step of the algorithm must specify the action to take without criteria interpretation.
- Finite Being: A specific number and number of steps must compose the algorithm, which must end to complete.
- have zero or more entries: Data are provided as input to an algorithm (these are generated in some way) to perform operations comprising.
- Having one or more outputs: should always return a result, an algorithm is useless to do something and never know it was. Returning a result should not be considered as only "see" in print or online, like computers. There are many other mechanisms capable of programming that does not have an output of results in this way. By release of results must be understood any means or channel through which we can appreciate the effects of the actions of algorithm.
- Effectiveness: The time and effort for every step taken must be precise, using nothing more and nothing less than what is required for and in its implementation.
algorithm The word comes from the name of the mathematician Abu Abdullah Muhammad bin Musa al-Khwarizmi (there are many variations to the name to use the Latin alphabet, such as Al-Khorezmi, Al-Khwarizmi, Al -Khawarizmi, Al-or Al-Khowarizmi Khawaritzmi) who lived between the eighth and ninth centuries.
His job was to preserve and disseminate knowledge of ancient Greece and India. His books were easy understanding, and thus its main value is not to create new theorems and new currents of thought, but to simplify the mathematics at a level low enough so that it could be understood by a wide audience. It pointed out how the virtues of the Indian decimal system (contrary to traditional Arab system) and how he explained that, through a clear and concise specification of how to calculate systematically, could be defined algorithms that were used in a similar mechanical abacus instead of hands. He also studied how to reduce the number of operations required to form the stone.
For this reason, although he was not the inventor of the first algorithm, this concept deserves to be associated with his name. Al-Khorezmi was undoubtedly the first algorithmic thinker.
Already in the nineteenth century, the first algorithm was written for a computer. She was Ada Byron, whose writings detailing the analytical engine in 1842. Why it is considered by many as the first programmer though, Charles Babbage, one completed her machine, so that the algorithm was never implemented.
The idea of \u200b\u200bsolving a problem or have a algorithm is quite old, so much so that there was a mistaken belief that there was no problem that can not be resolved and on that basis, the mathematician David Hilbert wanted to find an algorithm for the algorithms. Today, thanks to the work of Kurt Gödel, Alonzo Church (calculated lamba), Alan Turing (Turing machine), it is known that within the universe of problems, a small part is computable, then the objective pursued by David Hilbert was computable, is what has been termed as the computability of algorithms .
The Flowchart |
WHAT IS IT?
is a graphical representation of the sequence of activities of a process. addition to the sequence of activities, the flow chart shows what is done at each stage, materials or services entering and leaving the process, decisions must be taken and people involved (in the chain customer / supplier)
The flowchart makes it easier to analyze a process for identifying:
inputs suppliers, the outputs of their clients and critical points. SYMBOLS
The flow chart uses a set of symbols to represent stages of the process, people or sectors involved, the sequence of operations and the movement of data and documents.
The most common symbols used are as follows:
Limits: This symbol is used to identify the beginning and end of a process:
| |
| |
| |
What is a programming language?
A programming language is an artificial language that can be used to control the behavior of a machine, especially a computer. These are composed a set of syntactic and semantic rules that allow to express instructions that are then interpreted.
should be distinguished from "computer language", which is a broader definition, since they include other languages \u200b\u200bsuch as HTML or PDF that format is a text and not programming itself.
The programmer is responsible for the programming language used to create a set of instructions that ultimately constitute a computer program or subroutine.
In use, a programming language can approach the human form of expression and, therefore, this type of language is called high level. This means using words and forms in their structures that resemble natural language (especially English). In contrast, languages \u200b\u200bthat are closer to the way in which the computer is operated, are called low-level languages. This means that the programmer should write is closer to machine language, which is ultimately what computers can interpret.
Types of Programming Languages \u200b\u200b
low-level languages \u200b\u200b
languages \u200b\u200bare totally dependent on the machine, meaning that the program is done with this type of language can not be migrated or use on other machines. Because it is almost
Custom-designed hardware, make the most of its characteristics.
Within this group are:
- The language machine: the machine language commands the fundamental operations for its operation. Cnsiste on the combination of 0's and 1's to form the commands understood by the hardware of the machine.
This language is much faster than high-level languages.
The disadvantage is that they are quite difficult to handle and use, in addition to huge source code where to find a fault is almost impossible. - Assembly language is a language derived from the machine and consists of abbreviations letters and numbers called mnemonics. With the emergence of this language translation programs were created to pass the programs written in assembly language into machine language. As an advantage over the machine code is that the source code were shorter and had less memory programs created. The disadvantages of this language remain virtually the same as assembly language, adding the difficulty of having to learn a new language difficult to prove and maintain.
High-level languages \u200b\u200b
are those that are closer to natural language into machine language. They are aimed
to solve problems through the use of EDD's.
| Note: EDD's are the abbreviations of Dynamic Data Structures, which is widely used in all programming languages. They are structures that can be resized during program execution. Allow us to create data structures to suit the real needs of a program. |
languages \u200b\u200bare treated independent of computer architecture. So, in principle, a program written in a high-level language, you can migrate from one machine to another without any problem.
These languages \u200b\u200ballow the programmer to forget completely the inner workings of the machine / s for which they are designing the program. Just need a translator to understand the source and characteristics of the machine.
data types usually used for programming and there are general purpose languages \u200b\u200b(any type of application) and specific purpose (such as FORTRAN for scientific work).
Languages \u200b\u200bMiddle
level is a term not accepted by everyone, but you have probably heard q. These languages \u200b\u200bare at a midpoint between the two. Within these languages \u200b\u200bcould be in C because it can access the system logs, working with memory addresses, all characteristics of low-level languages \u200b\u200bwhile high-level operations. Generations
The evolution of programming languages \u200b\u200bcan be divided into 5 stages or generations.
- First generation: machine language.
- Second generation: they created the first assembly languages.
- Third generation: established the first high-level languages. Eg C, Pascal, Cobol ...
- Fourth generation. Languages \u200b\u200bare able to generate code by themselves, are called RAD, with which applications can be made without an expert in language. Here also are object-oriented languages, making it possible to reuse parts of the code d for other programs. Visual eg, Natural Adabas ...
- Fifth generation: here are oriented languages \u200b\u200bartificial intelligence. These languages \u200b\u200bare still underdeveloped. LISP eg
0 comments:
Post a Comment