ദി ആർട്ട് ഓഫ് കമ്പ്യൂട്ടർ പ്രോഗ്രാമിംഗ്

വിക്കിപീഡിയ, ഒരു സ്വതന്ത്ര വിജ്ഞാനകോശം.
(The Art of Computer Programming എന്ന താളിൽ നിന്നും തിരിച്ചുവിട്ടതു പ്രകാരം)
The Art of Computer Programming
The Art of Computer Programming, Volume 1: Fundamental Algorithms
കർത്താവ്Donald Knuth
രാജ്യംUnited States
ഭാഷEnglish
സാഹിത്യവിഭാഗംNon-fiction
Monograph
പ്രസാധകർAddison-Wesley
പ്രസിദ്ധീകരിച്ച തിയതി
1968– (the book is still incomplete)
മാധ്യമംPrint (Hardcover)
ISBN0-201-03801-3
519
LC ClassQA76.75

  വിവിധ രീതിയിലുള്ള പ്രോഗ്രാമിംഗ് അൽഗോരിഥങ്ങളുടേയും, മറ്റും വിവര വിശകലനത്തിനായി ഉപയോഗിച്ചുപോരുന്ന ഡൊണാൾഡ് കനൂത്ത് രചിച്ച ഒരു ഗ്രന്ഥമാണ്  ദി ആർട്ട്  ഓഫ് കമ്പ്യൂട്ടർ പ്രോഗ്രാമിംഗ് 

1962-ൽ പന്ത്രണ്ട് അദ്ധ്യായങ്ങളുള്ള ഒരൊറ്റ പുസ്തകമായി  ഇറക്കാനാണ് ഡൊണാൾഡ് തീരുമാനിച്ചത്. പിന്നീട് ഏഴ് വാള്യങ്ങളാക്കാനായി തീരുമാനിച്ചെങ്കിലും പ്രിന്റിംഗിന്റെ അവസാനം അത് മൂന്ന് വാള്യങ്ങളായി മാറ്റേണ്ടി വന്നു.  അവ 1968 , 1969 , 1973 എന്നീ വർഷങ്ങളിലായി പുറത്തിറങ്ങി.  പിന്നീട് അതിന്റെ നാലാം വാള്യം ( ദൈര്യഘ്യമുള്ള ഒന്നായിരുന്നു ഇത്) 2005-ൽ പ്രസിദ്ധീകരിച്ചു.  അതിന്റെ മികച്ച രൂപം 2011-ലാണ് പുറത്തിറങ്ങിയത്. കൂടാതെ കുറച്ചുകൂടെ ദൈർഘ്യമാക്കിക്കൊണ്ട് അതിന്റെ ആറാം തരം 2015-ൽ പുറത്തിറങ്ങി.


ചരിത്രം[തിരുത്തുക]

2005-ലെ ഡൊണാൾഡ് കനൂത്ത്

വെസ്റ്റിംഗ്വസ് ടാലെന്റ് സെർച്ച് സ്കോളർഷിപ്പ് പുരസ്കാംര നേടിയതിനുശേഷം അദ്ദേഹം ഇൻസ്റ്റിറ്റ്യൂട്ട് ഓഫ് ടെക്നോളജിയിലേക്ക് പ്രവേശിച്ചു. അവിടെ അദ്ദേഹത്തിന്റെ പ്രവർത്തനങ്ങൾ മികവുറ്റതായിരുന്നു. അതുകൊണ്ടുതന്നെ അദ്ദേഹത്തെ യൂണിവേഴ്സിറ്റി തന്റെ ബിരുദത്തിനുശേഷം മാസ്റ്റർ ഓഫ് സയൻസ് പദവി നൽകി. അവധിക്കാലത്ത് കമ്പനികൾ കമ്പൈലറുകളെ നിർമ്മിക്കാനുള്ള പണികൾ ഏൽപ്പിക്കകയും തന്റേതായ രീതിയിൽ പണമുണ്ടാക്കുകയും ചെയ്തു. അത് അദ്ദേഹത്തിന്റെ പ്രൊഫസർമാരുടെ വാർഷിക ധനത്തേക്കാൾ അധികമായിരുന്നു. 

വാള്യം[തിരുത്തുക]

  • Volume 1 – Fundamental Algorithms
  • Chapter 1 – Basic concepts
  • Chapter 2 – Information structures
  • Volume 2 – Seminumerical Algorithms
  • Chapter 3 – Random numbers
  • Chapter 4 – Arithmetic
  • Volume 3 – Sorting and Searching
  • Chapter 5 – Sorting
  • Chapter 6 – Searching
  • Volume 4 – Combinatorial Algorithms (chapters 7 and 8 released in several subvolumes)
  • Chapter 7 – Combinatorial searching
  • Chapter 8 – Recursion
  • Volume 5 – Syntactic Algorithms (as of 2015, estimated for release in 2025)
  • Chapter 9 – Lexical scanning (also includes string search and data compression)
  • Chapter 10 – Parsing techniques
  • Volume 6 – The Theory of Context-Free Languages (planned)
  • Volume 7 – Compiler Techniques (planned)

അദ്ധ്യായ രൂപരേഖ[തിരുത്തുക]

  • Volume 1 – Fundamental Algorithms
    • Chapter 1 – Basic concepts
      • 1.1. Algorithms
      • 1.2. Mathematical Preliminaries
        • 1.2.1. Mathematical Induction
        • 1.2.2. Numbers, Powers, and Logarithms
        • 1.2.3. Sums and Products
        • 1.2.4. Integer Functions and Elementary Number Theory
        • 1.2.5. Permutations and Factorials
        • 1.2.6. Binomial Coefficients
        • 1.2.7. Harmonic Numbers
        • 1.2.8. Fibonacci Numbers
        • 1.2.9. Generating Functions
        • 1.2.10. Analysis of an Algorithm
        • 1.2.11. Asymptotic Representations
          • 1.2.11.1. The O-notation
          • 1.2.11.2. Euler's summation formula
          • 1.2.11.3. Some asymptotic calculations
      • 1.3 MMIX (MIX in the hardback copy but updated by fascicle 1)
        • 1.3.1. Description of MMIX
        • 1.3.2. The MMIX Assembly Language
        • 1.3.3. Applications to Permutations
      • 1.4. Some Fundamental Programming Techniques
        • 1.4.1. Subroutines
        • 1.4.2. Coroutines
        • 1.4.3. Interpretive Routines
          • 1.4.3.1. A MIX simulator
          • 1.4.3.2. Trace routines
        • 1.4.4. Input and Output
        • 1.4.5. History and Bibliography
    • Chapter 2 – Information Structures
      • 2.1. Introduction
      • 2.2. Linear Lists
        • 2.2.1. Stacks, Queues, and Deques
        • 2.2.2. Sequential Allocation
        • 2.2.3. Linked Allocation
        • 2.2.4. Circular Lists
        • 2.2.5. Doubly Linked Lists
        • 2.2.6. Arrays and Orthogonal Lists
      • 2.3. Trees
        • 2.3.1. Traversing Binary Trees
        • 2.3.2. Binary Tree Representation of Trees
        • 2.3.3. Other Representations of Trees
        • 2.3.4. Basic Mathematical Properties of Trees
          • 2.3.4.1. Free trees
          • 2.3.4.2. Oriented trees
          • 2.3.4.3. The "infinity lemma"
          • 2.3.4.4. Enumeration of trees
          • 2.3.4.5. Path length
          • 2.3.4.6. History and bibliography
        • 2.3.5. Lists and Garbage Collection
      • 2.4. Multilinked Structures
      • 2.5. Dynamic Storage Allocation
      • 2.6. History and Bibliography
  • Volume 2 – Seminumerical Algorithms
    • Chapter 3 – Random Numbers
      • 3.1. Introduction
      • 3.2. Generating Uniform Random Numbers
        • 3.2.1. The Linear Congruential Method
          • 3.2.1.1. Choice of modulus
          • 3.2.1.2. Choice of multiplier
          • 3.2.1.3. Potency
        • 3.2.2. Other Methods
      • 3.3. Statistical Tests
        • 3.3.1. General Test Procedures for Studying Random Data
        • 3.3.2. Empirical Tests
        • 3.3.3. Theoretical Tests
        • 3.3.4. The Spectral Test
      • 3.4. Other Types of Random Quantities
        • 3.4.1. Numerical Distributions
        • 3.4.2. Random Sampling and Shuffling
      • 3.5. What Is a Random Sequence?
      • 3.6. Summary
    • Chapter 4 – Arithmetic
      • 4.1. Positional Number Systems
      • 4.2. Floating Point Arithmetic
        • 4.2.1. Single-Precision Calculations
        • 4.2.2. Accuracy of Floating Point Arithmetic
        • 4.2.3. Double-Precision Calculations
        • 4.2.4. Distribution of Floating Point Numbers
      • 4.3. Multiple Precision Arithmetic
        • 4.3.1. The Classical Algorithms
        • 4.3.2. Modular Arithmetic
        • 4.3.3. How Fast Can We Multiply?
      • 4.4. Radix Conversion
      • 4.5. Rational Arithmetic
        • 4.5.1. Fractions
        • 4.5.2. The Greatest Common Divisor
        • 4.5.3. Analysis of Euclid's Algorithm
        • 4.5.4. Factoring into Primes
      • 4.6. Polynomial Arithmetic
        • 4.6.1. Division of Polynomials
        • 4.6.2. Factorization of Polynomials
        • 4.6.3. Evaluation of Powers
        • 4.6.4. Evaluation of Polynomials
      • 4.7. Manipulation of Power Series
  • Volume 3 – Sorting and Searching
    • Chapter 5 – Sorting
      • 5.1. Combinatorial Properties of Permutations
        • 5.1.1. Inversions
        • 5.1.2. Permutations of a Multiset
        • 5.1.3. Runs
        • 5.1.4. Tableux and Involutions
      • 5.2. Internal sorting
        • 5.2.1. Sorting by Insertion
        • 5.2.2. Sorting by Exchanging
        • 5.2.3. Sorting by Selection
        • 5.2.4. Sorting by Merging
        • 5.2.5. Sorting by Distribution
      • 5.3. Optimum Sorting
        • 5.3.1. Minimum-Comparison Sorting
        • 5.3.2. Minimum-Comparison Merging
        • 5.3.3. Minimum-Comparison Selection
        • 5.3.4. Networks for Sorting
      • 5.4. External Sorting
        • 5.4.1. Multiway Merging and Replacement Selection
        • 5.4.2. The Polyphase Merge
        • 5.4.3. The Cascade Merge
        • 5.4.4. Reading Tape Backwards
        • 5.4.5. The Oscillating Sort
        • 5.4.6. Practical Considerations for Tape Merging
        • 5.4.7. External Radix Sorting
        • 5.4.8. Two-Tape Sorting
        • 5.4.9. Disks and Drums
      • 5.5. Summary, History, and Bibliography
    • Chapter 6 – Searching
      • 6.1. Sequential Searching
      • 6.2. Searching by Comparison of Keys
        • 6.2.1. Searching an Ordered Table
        • 6.2.2. Binary Tree Searching
        • 6.2.3. Balanced Trees
        • 6.2.4. Multiway Trees
      • 6.3. Digital Searching
      • 6.4. Hashing
      • 6.5. Retrieval on Secondary Keys
  • Volume 4A – Combinatorial Algorithms, Part 1
    • Chapter 7 – Combinatorial Searching
      • 7.1. Zeros and Ones
        • 7.1.1. Boolean Basics
        • 7.1.2. Boolean Evaluation
        • 7.1.3. Bitwise Tricks and Techniques
        • 7.1.4. Binary Decision Diagrams
      • 7.2. Generating All Possibilities
        • 7.2.1. Generating Basic Combinatorial Patterns
          • 7.2.1.1. Generating all n-tuples
          • 7.2.1.2. Generating all permutations
          • 7.2.1.3. Generating all combinations
          • 7.2.1.4. Generating all partitions
          • 7.2.1.5. Generating all set partitions
          • 7.2.1.6. Generating all trees
          • 7.2.1.7. History and further references

ഇംഗ്ലീഷ് എഡീഷൻ[തിരുത്തുക]

ഇപ്പോഴത്തെഎഡിഷൻ[തിരുത്തുക]

ഇപ്പോൾ നിലവിലുള്ള എഡിഷനുകൾ ഇതൊക്കെയാണ്:

മുമ്പുള്ളവ[തിരുത്തുക]

മുഴുവൻ വാള്യങ്ങളും[തിരുത്തുക]

പ്രസിദ്ധീകരണ തിയ്യതിയനുസരിച്ചുള്ള എഡിഷനുകൾ.