Thursday, March 5, 2009

History of COMPUTER ARCHITECTURE

The term “architecture” in computer literature can be traced to the work of Lyle R. Johnson and Frederick P. Brooks, Jr., members in 1959 of the Machine Organization department in IBM’s main research center. Johnson had occasion to write a proprietary research communication about Stretch, an IBM-developed supercomputer for Los Alamos Scientific Laboratory; in attempting to characterize his chosen level of detail for discussing the luxuriously embellished computer, he noted that his description of formats, instruction types, hardware parameters, and speed enhancements aimed at the level of “system architecture” – a term that seemed more useful than “machine organization.” Subsequently Brooks, one of the Stretch designers, started Chapter 2 of a book (Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962) by writing, “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints.” Brooks went on to play a major role in the development of the IBM System/360 line of computers, where “architecture” gained currency as a noun with the definition “what the user needs to know.” Later the computer world would employ the term in many less-explicit ways.

The first mention of the term architecture in the referred computer literature is in a 1964 article describing the IBM System/360.The article defines architecture as the set of “attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation.” In the definition, the programmer perspective of the computer’s functional behavior is key. The conceptual structure part of an architecture description makes the functional behavior comprehensible, and extrapolatable to a range of Use cases. Only later on did ‘internals’ such as “the way by which the CPU performs internally and accesses addresses in memory,” mentioned above, slip into the definition of computer architecture.

COMPUTER ARCHITECTURE

Computer architecture in computer engineering is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements and design implementations for the various parts of a computer, focusing largely on the way by which the central processing unit (CPU) performs internally and accesses addresses in memory.

It may also be defined as the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals.

HISTORY OF LOGIC

Several ancient civilizations have employed intricate systems of reasoning and asked questions about logic or propounded logical paradoxes. In India, the Nasadiya Sukta of the Rigveda (RV 10.129) contains ontological speculation in terms of various logical divisions that were later recast formally as the four circles of catuskoti: "A", "not A", "A and not A", and "not A and not not A".[8] The Chinese philosopher Gongsun Long (ca. 325–250 BC) proposed the paradox "One and one cannot become two, since neither becomes two."[9] In China, the tradition of scholarly investigation into logic, however, was repressed by the Qin dynasty following the legalist philosophy of Han Feizi.

The earliest sustained work on the subject of logic which has survived was that of Aristotle,[10] although the Chinese 'School of Names' is recorded as having examined logical puzzles such as "A White Horse is not a Horse" as early as the fifth century BCE.[11] The formally sophisticated treatment of modern logic descends from the Greek tradition, the latter mainly being informed from the transmission of Aristotelian logic.

Logic in Islamic philosophy also contributed to the development of modern logic, which included the development of "Avicennian logic" as an alternative to Aristotelian logic. Avicenna's system of logic was responsible for the introduction of hypothetical syllogism,[12] temporal modal logic,[13][14] and inductive logic.[15][16] The rise of the Asharite school, however, limited original work on logic in Islamic philosophy, though it did continue into the 15th century and had a significant influence on European logic during the Renaissance.

In India, innovations in the scholastic school, called Nyaya, continued from ancient times into the early 18th century, though it did not survive long into the colonial period. In the 20th century, Western philosophers like Stanislaw Schayer and Klaus Glashoff have tried to explore certain aspects of the Indian tradition of logic.

During the later medieval period, major efforts were made to show that Aristotle's ideas were compatible with Christian faith. During the later period of the Middle Ages, logic became a main focus of philosophers, who would engage in critical logical analyses of philosophical arguments.

In the late 19th and early 20th centuries, there were many attempts by mathematicians such as David Hilbert and Bertrand Russell to express logic mathematically. Today mathematical logic is an important area of mathematics.

LOGIC

Logic is the study of the principles of valid demonstration and inference. Logic is a branch of philosophy, a part of the classical trivium. The word derives from Greek λογική (logike), fem. of λογικός (logikos), "possessed of reason, intellectual, dialectical, argumentative", from λόγος logos, "word, thought, idea, argument, account, reason, or principle".[1][2]

Logic concerns the structure of statements and arguments, in formal systems of inference and natural language. Topics include validity, fallacies and paradoxes, reasoning using probability and arguments involving causality. Logic is also commonly used today in argumentation theory.[3]

The syllogistic logic developed by Aristotle predominated until the mid-nineteenth century when interest in the foundations of mathematics stimulated the development of symbolic logic (now called mathematical logic). In 1879 Frege published Begriffsschrift which inaugurated modern logic with the invention of quantifier notation. In 1903 Alfred North Whitehead and Bertrand Russell published Principia Mathematica.[4] on the foundations of mathematics, attempting to derive mathematical truths from axioms and inference rules in symbolic logic. In 1931 Gödel raised serious problems with the foundationalist program and logic ceased to focus on such issues.

The development of logic since Frege, Russell and Wittgenstein had a profound influence on the practice of philosophy and the perceived nature of philosophical problems (see Analytic philosophy), and Philosophy of mathematics. Logic, especially sentential logic, is implemented in computer logic circuits and is fundamental to computer science. Logic is commonly taught by university philosophy departments often as a compulsory discipline.

Wednesday, March 4, 2009

Topic of LOGIC DESIGN

1. Accumulators
2. Advantages of breaking down big programs into procedures
3. An array subscripts
4. Arrays -elements, subscripts
5. Assignment statements x = 4 + 1 versus 4 + 1 = x
6. Batch versus Online/Real time procession
7. Case structure – when is it used
8. Comparison operators (=, < , etc…)
9. Counters
10. Data input files – fields used by the program
11. Data validation – correct type, consistency of data, data range, presence of data
12. Decision statements, single-alternative, dual-alternative
13. Default output devices
14. Different names for subroutines
15. Errors, exceptions
16. Evaluate X when A=True, B=False, etc.
17. GUI – principles of design
18. GUI programming environments –components
19. Identify output from FOR/NEXT and While loops
20. Identify proper statements to process one-dimensional arrays
21. Identify proper statements to process two-dimensional arrays
22. Initializing variables
23. Input, output, processing examples
24. Local versus global variables
25. Logical operators (NOT, AND, OR)
26. Modules – exit versus return
27. Names for flowchart symbols – where/when they are used
28. Passing variables
29. Rules for Variable names
30. Simple binary number to decimal conversion (Ex. 00001000 = 8)
31. Simple decimal to binary conversion (Ex. 8 = 00001000)
32. Simple decimal to Hex conversion (Ex. 15 = F)
33. Simple Hex to decimal conversion (Ex. F = 15)
34. Sorting – ascending, descending
35. Storyboard
36. Syntax errors and logical errors.
37. Tasks performed in a housekeeping module
38. Tools for planning the solution to a problem
39. Users can initiate actions by ..
40. When planning the logic of a program
41. When to use FOR NEXT loops
42. When to use While, Do Until loops