Software_innovations




















Thin and light. Everyday use Entry-level Vivobook. ProArt Studiobook Power up your imagination. Zenbook Premium and effortless portability. Vivobook Dare to be different. Chromebook Chrome OS laptop. ProArt Creative Professionals. Workstation Creative Professionals. Business Security, reliability and improved management. Wireless Adapters. Maurice Wilkes, Stanley Gill, and David Wheeler not me developed the concept of subroutines in programs to create re-usable modules and began formalizing the concept of software development.

Alick E. Autocoding later came to be a generic term for assembly language programming. Grace Murray Hopper described techniques to select compile pre-written code segments in correspondence with codes written in a high level language, i.

John Backus proposed the development of a programming language that would allow users to express their programs directly in commonly understood mathematical notation. The result was Fortran. The first Fortran implementation was completed in However, Fortran used notation far more similar to human notation, and its developers developed many techniques so that, for the first time, a compiler could create highly optimized code [Ceruzzi , 85].

Frierich L. This served as the basis for compiler construction, and was naturally extended to all bracketed operation structures and all bracketed data structures. In Fall John McCarthy MIT, US began proposing time-sharing operating systems, where multiple users could share a single computer and each believes they control an entire computer.

On January 1, , he wrote a memo to Professor Philip Morse proposing that this be done for an upcoming machine. This idea caused immense excitement in the computing field. McCarthy at Stanford developed the LISP programming language for supporting list processing; it continues to be critical for Artificial Intelligence and related work, and is still widely used.

However, McCarthy realized that a program could itself be represented as a list, refining the approach into a flexible system fundamentally based on list processing. In he began thinking about what would be needed for list processing, with significant work beginning in with hand simulated compilations. LISP demonstrated other important innovations used in many later languages, including polymorphism and unlimited-extent data structures. One of the key capabilities originally developed in Lisp is automatic memory management aka automatic garbage collection.

This capability is now included in most programming languages, including JavaScript, Java, Python, and others. In the early days of computing every vendor had their own incompatible method for creating programs and storing data. But this created terrible problems for users, who could not easily exchange information and were kept hostage by the various vendors.

Thus, vendor-independent exchange standards began to be developed. The solution was to create vendor-independent exchange standards. The basic idea of creating standards was not new, even then. But creating standards for something ephemeral like software was new, so vendor-independent exchange standards for software are being counted as an innovation. Such standards are critical; standards finally made it possible for users to choose and change their suppliers, and since they could work together even with different suppliers.

Even today, people fail to understand the need for standards and thus fall victim to vendor lock-in. The initial specification was presented in April , and was developed in cooperation with computer manufactures, users including the U. Department of Defense and universities. Soon afterwards, in May , a committee began developing a standard for the Fortran language. American Standard Code for Information Interchange ASCII is a way of encoding characters as numbers, so that there is a standard number to represent each character of text.

Unlike previous approaches which required large storage capacities at each node , his approach used higher transmission speeds, so each node could be small, simple, and cheap. This series described how to implement a distributed packet-switching network with no single outage point so it could be survivable. In he wrote a memo to its members pleading for standardization among the various computer systems so they could easily communicate data between them, a memo that spurred on the search for and implmentation of ways to link computers together.

In C. Tony Hoare developed the Quicksort algorithm, which was eventually published in Sorting is an extremely common operation, and this algorithm performed significantly better than the algorithms typically used at the time. Perhaps even more importantly, it inspired a great deal of research into improved algorithms, and showed many that recursive algorithms could be extremely useful. Today there are many other useful sorting algorithms, such as heapsort and merge sort, but even now quicksort is often used for sorting data.

For the first time, typed material could be edited without having to retype the whole text or chop up a coded copy. Later, in , this would be morphed into a word processing system we would recognize today. The Mouse was invented in by Douglas C. Engelbart at SRI, using funding from the U. The true innovations were in the user interface approaches that use the mouse, which is entirely a software innovation. It was patented US , though not until , and this never resulted in much money for the inventor.

A system virtual machine VM , aka full virtualization VMs, enables a single computer to appear to be multiple real computers and provide the functionality needed to install and execute an entire operating system, including an unmodified "guest" operating system.

The CP was only used in labs never sold to customers , but it later evolved into th eCP, the first first commercial mainframe to support system virtual machines.

History of Virtualization has more information. Later products, such as VMWare's, exploited the fact that microprocessors had become so powerful that it was useful to share them. Later on, operating-system-level virtualization aka containers would be developed, but we count that here as a separate development. Dijkstra defined semaphores for coordinating multiple processes.

The term derives from railroad signals, which in a similar way coordinate trains on railroad tracks. The Multics project spurred several innovations. Multics was the first operating system to sport hierarchical directories, as described in a paper by Daley and Neumann.

Multics was also the first operating system where, in an innovation developed by Louis Pouzin, what you type at command level is the name of a program to run.

This caused related innovations like working directories and a shell. In earlier systems, like CTSS, adding a command requiring recompiling; to run your own program you had to execute a system command that then loaded and ran the program.

Although fewer ordinary users use a command line interface today, these are still important for many programmers. The Multicians. This concept - and algorithms that implement it - become the basis of logic programming.

As best as can be determined, email between users on a single computer was developed in This is confirmed in "The history of email" by Ian Peter. Email distributed across a network is much more powerful, but single-computer email laid the groundwork. Les Earnest of Stanford developed the first spelling checker circa He later improved it around and this version quickly spread via the ARPAnet throughout the world.

He developed a way to make it unusually portable, by splitting the compiler into two parts: a compiler into an intermediate pseudo-code which he called O-code , and a back-end that translated that into the actual machine code. Since the intermediate code could be exchanged between arbitrary machines, it enabled portability. Even many text adventure games have been built with this approach, most famously the Z-machine used to implement many Infocom games such as Zork.

Simula 67 introduces constructs that much later become common in computer programming: objects, classes, virtual procedures, and inheritance.

Read more. Customizable and scalable. Download the latest Innovations Lens Update. This site uses cookies to enhance your experience.



0コメント

  • 1000 / 1000