Remember today 2 – halting problem

In memoriam to Alan Turing (http://de.wikipedia.org/wiki/Alan_Turing)

„In computability theory, the halting problem can be stated as follows: Given a description of an arbitrary computer program, decide whether the program finishes running or continues to run forever. This is equivalent to the problem of deciding, given a program and an input, whether the program will eventually halt when run with that input, or will run forever.

Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist. A key part of the proof was a mathematical definition of a computer and program, what became known as a Turing machine; the halting problem is undecidable over Turing machines. It is one of the first examples of a decision problem.“

http://en.wikipedia.org/wiki/Halting_problem

 

Backus-Nour-Form

Keep in mind today:

“ In computer science, BNF (Backus Normal Form or Backus–Naur Form) is one of the two [1] main notation techniques for context-free grammars, often used to describe the syntax of languages used in computing, such as computer programming languages, document formats, instruction sets and communication protocol; the other main technique for writing context-free grammars is the van Wijngaarden form. They are applied wherever exact descriptions of languages are needed: for instance, in official language specifications, in manuals, and in textbooks on programming language theory.

Many extensions and variants of the original Backus–Naur notation are used; some are exactly defined, including Extended Backus–Naur Form (EBNF) and Augmented Backus–Naur Form (ABNF).

A BNF specification is a set of derivation rules, written as

<symbol> ::= __expression__where <symbol> is a nonterminal, and the __expression__ consists of one or more sequences of symbols; more sequences are separated by the vertical bar, '|', indicating a choice, the whole being a possible substitution for the symbol on the left. Symbols that never appear on a left side are terminals. On the other hand, symbols that appear on a left side are non-terminals and are always enclosed between the pair <>.

The ‚::=‘ means that the symbol on the left must be replaced with the expression on the right“

http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form

DIY Apple I clone – replica I

For those who’re to young for an original apple bought in the shop, here is the ultimative chance to get their own one

The replica 1 is a functional clone of the apple 1 computer created by Steve Wozniak in 1976. This was the computer that Steve Jobs and Woz used to start Apple Computers in 1976. The latest version of the replica 1 is labeled SE for Second Edition. The replica 1 functions exactly like the apple 1 with many of the same components like a 6502 CPU and 6821 PIA. It comes with 32K RAM and 8K EEPROM. Addtional features like a ps/2 port, serial, USB port, ATX and DC wall power supply connectors makes the replica 1 a fully functional computer system for todays collector or hobby builder. Available as a kit or assembled, the replica 1 is sure to give you hours of fun and excitement as you relive the glory days of computing. As a new feature, a full blown assembler called Krusader written by Ken Wessen was added to the EPROM space giving the user the ability to assembler 6502 programs right on the replica 1 without a PC. Write 6502 machine code programs using mnemonics instead of just programming hex code into the memory. This added programming tool makes the repica 1 not only a nostalgic computer but a great learning tool and introduction to microprocessors.“

http://www.brielcomputers.com/replica1.html

replica1d

Or the non-hardware alternative, the apple I emulator:

„Pom1 is an Apple 1 emulator and is being ported to C from the original Java version. It uses the Simple DirectMedia Layer library and works on most platforms“

http://pom1.sourceforge.net/?page=about

apple emulator