submit urlsubmit rss feedadd directory

article

Computer software (or simply software) is the programs and procedures that enable a computer to perform a specific task, as opposed to the physical components of the system (hardware). This includes application software such as a word processor, which enables a user to perform a task, and system software such as an operating system, which enables other software to run properly, by interfacing with hardware and with other software.

The term "software" was first used in this sense by John W. Tukey in 1957. In computer science and software engineering, computer software is all information processed by computer systems, programs and data. The concept of reading different sequences of instructions into the memory of a device to control computations was invented by Charles Babbage as part of his difference engine. The theory that is the basis for most modern software was first proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem. Hally, Mike (2005:79). Electronic brains/Stories from the dawn of the computer age. British Broadcasting Corporation and Granta Books, London. ISBN 1-86-207663-4.

Relationship to hardware


Computer software is so called in contrast to computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. In computers, software is loaded into RAM and executed in the central processing unit. At the lowest level, software consists of a machine language specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions (object code), which change the state of the computer from its preceding state. Software is an ordered sequence of instructions for changing the state of the computer hardware in a particular sequence. It is generally written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler.

More on [ Computer software ]


directory of related categories

 

 
 
directory of related topics

Software :: Math

 
Software RSS feed
Subscribe to Software RSS feed

directory of related sites

The LEDA Library - LEDA is a library of the data types and algorithms of combinatorial computing.
Meta Description: [ LEDA moved to AS ]

ACE - An Algebraic Combinatorics Environment for MAPLE providing functions to work with classical structures in algebraic combinatorics. Free download.

Algorithms and Software for Partitioning Meshes - Using combinatorics to solve structured linear systems of equations.

Combinatorics Software of the Algorithms Project - Combinatorial analysis, discrete mathematics and computer algebra are the main interests of the Algorithms Projects. The packages let you define combinatorial structures; manipulate the associated generating functions, functional equations or recurrences; study their asymptotic behaviour.
Meta Description: [ (none) ]

Gato: The Graph Animation Toolbox - Software for visualizing graph algorithms. Free under GPL. Unix, Linux, MacOs ad Windows versions.

GeoSteiner - Software for computing Steiner trees. Written in ANSI C, includes the public domain LP-solver lp_solve.

GOBLIN Graph Library - C++ library of graph optimization algorithms with a GUI for editing, running and tracing the algorithms.
Meta Description: [ Weiterleitung Goblin ]

GRAPE - A GAP package for computing with graphs; primarily designed for the efficient construction and analysis of graphs related to groups, combinatorial designs and finite geometries.
Meta Description: [ Homepage of the GRAPE package for GAP. ]

Graph Coloring By DSATUR - By using the DSATUR algorithm, this php/form colors any graph in the Dimacs format.

Graph Magics - A tool for graph theory, having a generator and offering various algorithms: shortest paths, network flows, maximal clique, optimal coloring etc.
Meta Description: [ Graph Magics - an ultimate software for graph theory, having many very useful things, among which a strong graph generator and more than 15 different algorithms that one may apply to graphs (ex. Shortest Path, Network Flows, Minimum Cut, Maximum Clique, Chinese Postman Problem, Graph Center, Grap... ]

Graph Partitioners - Three algorithms written in NESL for finding separators of graphs, in order to compare the quality of the cuts.

GraphThing - Tool for investigating Graph Theory, with a GTK interface. Free under GPL. Unix, source code in C++.

Information System on Graph Class Inclusions - A java applet for researching what is known about particular graph classes.

JGraphT - Free Java class library that provides mathematical graph-theory objects and algorithms.

LINK: A Software System for Discrete Mathematics - A general-purpose, extendible computing environment in which discrete mathematical objects representing real world problems can be easily manipulated and visualized.

METIS: Family of Multilevel Partitioning Algorithms - Graph, mesh, and hypergraph partitioning software.
Meta Description: [ clustering, data mining, bioinformatics, graph, mesh, and hypergraph partitioning software ]

Nauty - A program for computing automorphism groups of graphs and digraphs. It can also produce a canonical labelling.

500 NetworkX - NetworkX (NX) is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

plantri and fullgen - Programs for generation of certain types of planar graph, generated in such a way that exactly one member of each isomorphism class is output without the need for storing them.

Project Vega - A system for manipulating discrete mathematical structures: a Mathematica based collection of operations with interface to external packages and programs.

Scalable Libraries for Graph Partitioning - We are pursuing research in the area of new parallel methods for graph partitioning and incremental graph partitioning. Efficient methods for graph partitioning and incremental graph partitioning are important for parallelization of a large number of unstructured and/or adaptive applications.

SF, Posets and Coxeter/Weyl - John Stembridge's Maple packages for symmetric functions, posets, root systems, and finite Coxeter groups.

Software related videos
Computer Sc - Software Engineering
Next Video
Software related videos

 

HOMEADVERTISINGABOUT US

articlesartsbusinesscomputersgameshealthhospitalshomekids & teensnewsmobilephysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld


Submit a Site About Become an Editor