RE (complexity) – Wikipedia, the free encyclopedia

In computability theory and computational complexity theoryRE (recursively enumerable) is the class of decision problems for which a ‘yes’ answer can be verified by a Turing machine in a finite amount of time.[1] Informally, it means that if the answer is ‘yes’, then there is some procedure which takes finite time to determine this. On the other hand, if the answer is ‘no’, the machine might never halt. Equivalently, RE is the class of decision problems for which a Turing machine can list all the ‘yes’ instances, one by one (this is what ‘enumerable’ means).

Similarly, co-RE is the set of all languages that are complements of a language in RE. In a sense, co-RE contains languages of which membership can be disproved in a finite amount of time, but proving membership might take forever.

Each member of RE is a recursively enumerable set and therefore a Diophantine set.

RE (complexity) – Wikipedia, the free encyclopedia.

 

Larry Constantine – Wikipedia, the free encyclopedia

Larry Constantine – Wikipedia, the free encyclopedia

Structured Design

Constantine, who learned programming at the Massachusetts Institute of Technology, began his professional career in computers with a summer job at Scientific Computing, at the time a subsidiary of Control Data Corporation, in Minneapolis. He went on to full-time work at MIT’s Laboratory for Nuclear Science, where he wrote routines for analyzing spark chamber photographs, and then to C-E-I-R, Inc., where he worked on economics simulations, business applications, project management tools, and programming languages.

While still an undergraduate at MIT he began work on what was to become structured design, formed his first consulting company, and taught in a postgraduate program at the University of Pennsylvania Wharton School. The core of structured design, including structure charts and coupling and cohesion metrics, was substantially complete by 1968, when it was presented at the National Symposium on Modular Programming. He joined the faculty of IBM’s Systems Research Institute the same year, where he taught for four years and further refined his concepts.

As part of Structured Design, Constantine developed the concepts of cohesion (the degree to which the internal contents of a module are related) and coupling (the degree to which a module depends upon other modules).[7] These two concepts have been influential in the development of software engineering, and stand alone from Structured Design as significant contributions in their own right. They have proved foundational in areas ranging from software design to software metrics, and indeed have passed into the vernacular of the discipline.

Constantine also developed methodologies that combine human-computer-interaction design with software engineering. One methodology, usage-centered design, is the topic of his 1999 book with Lucy Lockwood, “Software For Use”. This is a third significant contribution to the field, being both well used in professional practice and the subject of academic study, and taught in a number of human-computer interface courses and universities around the world. His work on Human-Computer Interaction was influential for techniques like essential use cases and usage-centered design, which are widely used for building interactive software systems.

 

programming languages – Why do people hesitate using Python 3? – Programmers – Stack Exchange

Why do people hesitate using Python 3? – Programmers – Stack Exchange

Python 3 has been released in December 2008. A lot of time has passed since then but still today many developers hesitate using Python 3. Even popular frameworks like Django are not compatible with Python 3 yet but still rely on Python 2.

Sure, Python 3 has some incompatibilities to Python 2 and some people need to rely on backwards-compatibility. But hasn’t Python 3 been around long enough now for most projects to switch or start with Python 3?

Having two competing versions has so many drawbacks; two branches need to be maintained, confusion for learners and so on.

Non-English-based programming languages – Wikipedia, the free encyclopedia

Non-English-based programming languages are computer programming languages that, unlike better-known programming languages, do not use keywords taken from, or inspired by, the English vocabulary.

Non-English-based programming languages are computer programming languages that, unlike better-known programming languages, do not use keywords taken from, or inspired by, the English vocabulary.

via Non-English-based programming languages – Wikipedia, the free encyclopedia.

Continue reading “Non-English-based programming languages – Wikipedia, the free encyclopedia”

Fortran – Wikipedia, the free encyclopedia

Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing.

 Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing.

Fortran (a blend derived from The IBM Mathematical Formula Translating System) encompasses a lineage of versions, each of which evolved to add extensions to the language while usually retaining compatibility with previous versions.

Successive versions have added support for processing of character-based data (FORTRAN 77), array programming, modular programming and object-oriented programming (Fortran 90 / 95), and object-oriented and generic programming (Fortran 2003).

via Fortran – Wikipedia, the free encyclopedia.

First computer to sing – Daisy Bell – YouTube

First computer to sing – Daisy Bell – YouTube.

“Daisy Bell” was composed by Harry Dacre in 1892. In 1961, the IBM 7094 became the first computer to sing, singing the song Daisy Bell. Vocals were programmed by John Kelly and Carol Lockbaum and the accompaniment was programmed by Max Mathews. This performance was the inspiration for a similar scene in 2001: A Space Odyssey.