Computer science/Catalogs/List of seminal concepts in computer science: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Pat Palmer
(more on Java item)
imported>Pat Palmer
No edit summary
Line 19: Line 19:
* compiler optimizations
* compiler optimizations
* advent of managed code languages, such as Java, that can provide "type safety" and other benefits such as substantial software reuse by means of shared libraries
* advent of managed code languages, such as Java, that can provide "type safety" and other benefits such as substantial software reuse by means of shared libraries
* having an OS (Unix) written 99% in a high-level language (C), so that to port the OS to a different processor required mainly writing a C compiler for that processor (I don't know a neat name for this, but it's a huge concept--it, and the item above, are precursors to what open source projects now do when they have to compile their code for various hardware/OS platforms--they use an intermediate language to shelter high-level development from platform details
* [[hardware abstraction layer]] - having an OS (Unix) written 99% in a high-level language (C), so that to port the OS to a different processor required mainly writing a C compiler for that processor (I don't know a neat name for this, but it's a huge concept--it, and the item above, are precursors to what open source projects now do when they have to compile their code for various hardware/OS platforms--they use an intermediate language to shelter high-level development from platform details; the BIOS does this in an [[IBM compatible PC]]
* the various ways (past and present) for distributing applications across a network, or making procedure calls across a network: EDI, COM, COM+, CORBA, RPC, XML-RPC, and now XML web services (so-called Service Oriented Architecture, or SOA)
* the various ways (past and present) for distributing applications across a network, or making procedure calls across a network: EDI, COM, COM+, CORBA, RPC, XML-RPC, and now XML web services (so-called Service Oriented Architecture, or SOA)



Revision as of 17:14, 14 May 2007

This is a list of eminal concepts in computer science in computer science that we need to mention somehow in the history of computing article (which is currently organized as a timeline not amenable to inclusion of concepts per se). If unlinked, these are placeholders until an article can be written.

This list should not include every small idea, unless the concept proved to be an innovation which was so compelling that it was adopted by everyone later because it was such a good idea (and you can identify what that innovation was, and document it). Let's keep this for the really great ones for now.

This article might be renamed, moved or removed later once we figure out how to structure more of the CZ:Computers Workgroup articles.

Please also alphabetize by concept, and include other names by which the same things is sometimes called, possibly even closely related sub-concepts. Pat Palmer 16:06, 12 May 2007 (CDT)

  • virtual memory - also memory management in general
  • compiler (invention of) - also programming language, interpreter
  • operating system (invention of) - also batch processing, timesharing
  • threading and local variable scope, requiring use of stack frames
  • stored program architecture
  • Von Neumann architecture (having program and data in same physical memory)
  • Harvard architecture (having program and data in different physical memories)
  • pipelining of processor instructions for faster throughput (invention of)
  • all the other key processor design speedups, at least the biggest concepts (each has a multiple ways of being realized)
  • compiler optimizations
  • advent of managed code languages, such as Java, that can provide "type safety" and other benefits such as substantial software reuse by means of shared libraries
  • hardware abstraction layer - having an OS (Unix) written 99% in a high-level language (C), so that to port the OS to a different processor required mainly writing a C compiler for that processor (I don't know a neat name for this, but it's a huge concept--it, and the item above, are precursors to what open source projects now do when they have to compile their code for various hardware/OS platforms--they use an intermediate language to shelter high-level development from platform details; the BIOS does this in an IBM compatible PC
  • the various ways (past and present) for distributing applications across a network, or making procedure calls across a network: EDI, COM, COM+, CORBA, RPC, XML-RPC, and now XML web services (so-called Service Oriented Architecture, or SOA)

References