History Programming_paradigm




1 history

1.1 machine code
1.2 procedural languages
1.3 object-oriented programming
1.4 further paradigms





history

different approaches programming have developed on time, being identified such either @ time or retrospectively. approach consciously identified such structured programming, advocated since mid 1960s. concept of programming paradigm such dates @ least 1978, in turing award lecture of robert w. floyd, entitled paradigms of programming, cites notion of paradigm used thomas kuhn in structure of scientific revolutions (1962).


machine code

the lowest-level programming paradigms machine code, directly represents instructions (the contents of program memory) sequence of numbers, , assembly language machine instructions represented mnemonics , memory addresses can given symbolic labels. these called first- , second-generation languages.


in 1960s, assembly languages developed support library copy , quite sophisticated conditional macro generation , preprocessing abilities, call (subroutines), external variables , common sections (globals), enabling significant code re-use , isolation hardware specifics via use of logical operators such read/write/get/put. assembly was, , still is, used time critical systems , in embedded systems gives direct control of machine does.


procedural languages

the next advance development of procedural languages. these third-generation languages (the first described high-level languages) use vocabulary related problem being solved. example,



common business oriented language (cobol) – uses terms file, move , copy.
formula translation (fortran) – using mathematical language terminology, developed scientific , engineering problems.
algorithmic language (algol) – focused on being appropriate language define algorithms, while using mathematical language terminology , targeting scientific , engineering problems fortran.
programming language 1 (pl/i) – hybrid commercial-scientific general purpose language supporting pointers.
beginners purpose symbolic instruction code (basic) – developed enable more people write programs.
c – general-purpose programming language, developed dennis ritchie between 1969 , 1973 @ at&t bell labs.

all these languages follow procedural paradigm. is, describe, step step, procedure should, according particular programmer @ least, followed solve specific problem. efficacy , efficiency of such solution both therefore entirely subjective , highly dependent on programmer s experience, inventiveness, , ability.


object-oriented programming

following widespread use of procedural languages, object-oriented programming (oop) languages created, such simula, smalltalk, c++, c#, eiffel, php, , java. in these languages, data , methods manipulate kept 1 unit called object. way object or user can access data via object s methods. thus, inner workings of object may changed without affecting code uses object. there still controversy raised alexander stepanov, richard stallman , other programmers, concerning efficacy of oop paradigm versus procedural paradigm. need every object have associative methods leads skeptics associate oop software bloat; attempt resolve dilemma came through polymorphism.


because object-oriented programming considered paradigm, not language, possible create object-oriented assembler language. high level assembly (hla) example of supports advanced data types , object-oriented assembly language programming – despite origins. thus, differing programming paradigms can seen rather motivational memes of advocates, rather representing progress 1 level next. precise comparisons of efficacy of competing paradigms made more difficult because of new , differing terminology applied similar entities , processes numerous implementation distinctions across languages.


further paradigms

literate programming, form of imperative programming, structures programs human-centered web, in hypertext essay: documentation integral program, , program structured following logic of prose exposition, rather compiler convenience.


independent of imperative branch, declarative programming paradigms developed. in these languages, computer told problem is, not how solve problem – program structured set of properties find in expected result, not procedure follow. given database or set of rules, computer tries find solution matching desired properties. archetype of declarative language fourth generation language sql, , family of functional languages , logic programming.


functional programming subset of declarative programming. programs written using paradigm use functions, blocks of code intended behave mathematical functions. functional languages discourage changes in value of variables through assignment, making great deal of use of recursion instead.


the logic programming paradigm views computation automated reasoning on body of knowledge. facts problem domain expressed logic formulae, , programs executed applying inference rules on them until answer problem found, or set of formulae proved inconsistent.


symbolic programming paradigm describes programs able manipulate formulas , program components data. programs can modify themselves, , appear learn , making them suited applications such artificial intelligence, expert systems, natural language processing , computer games. languages support paradigm include lisp , prolog.








Comments