programming languages from fortran to whyp. a brief history of programming languages

17
Programming Languages From FORTRAN to WHYP

Post on 20-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

Programming Languages

From FORTRAN to WHYP

Page 2: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

A Brief History of Programming Languages

http://www.byte.com/art/9509/sec7/art19.htm

http://merd.net/pixel/language-study/diagram.html

Page 3: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

How would you have a computer evaluate this expression?

X = A*B + (C – D)/(E + F)

Reverse Polish Notation (RPN)Postfix

AB*CD-EF+/+

Page 4: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

Forth

http://www.ultratechnology.com/dindex.htm

Page 5: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

WHYP

• Pronounced “whip”

• “Words to Help You Program”

• Subroutine-threaded Forth for Embedded Systems– 68HC11 (16-bit)– 68332 (32-bit)– 68HC12 (16-bit)

Page 6: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

WHYP is developed from scratch in the new book:

Design of Embedded Systems Using 68HC12/11 Microcontrollers

byRichard E. HaskellPrentice Hall, 2000

Page 7: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

FORTH is a programming language that ---

• was invented by Charles Moore in the early 70’s

• is extensible

• keeps all definitions in a dictionary

• is extremely compact

• is recursive

• can be programmed in RAM, PROM, or ROM

• is structured

• uses a stack and postfix notation

Page 8: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

Chuck Moorereading Haskell’sWHYP book

Page 9: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

WHYP Colon Definitions

: squared ( n -- n**2)DUP * ;

: cubed ( n -- n**3)DUP \ n n squared \ n n**2* ; \ n**3

Page 10: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

Branching and Looping in WHYP

• IF…ELSE…THEN

• FOR…NEXT

• BEGIN…AGAIN

• BEGIN…UNTIL

• BEGIN…WHILE…REPEAT

Page 11: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

IF…ELSE…THEN

<cond> IF <true statements>

ELSE<false statements>

THEN

<cond> is either TRUE (-1) or FALSE (0)

Page 12: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

WHYP Conditional Words

< ( n1 n2 -- f ) (“less-than”)> ( n1 n2 -- f ) (“greater-than”)= ( n1 n2 -- f ) (“equals”)<> ( n1 n2 -- f ) (“not-equals”)<= ( n1 n2 -- f ) (“less-than or equal”)>= ( n1 n2 -- f ) (“greater-than or equal”)0< ( n -- f) (“zero-less”)0> ( n -- f) (“zero-greater”)0= ( n -- f) (“zero-equal”)U< ( u1 u2 -- f ) (“U-less-than”)U> ( u1 u2 -- f ) (“U-greater-than”)U<= ( u1 u2 -- f ) (“U-less-than or equal”)U>= ( u1 u2 -- f ) (“U-greater-than or equal”)

Page 13: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

\ Convert hex to ASCIIHEX

: hex2asc ( n -- asc ) 0F AND \ mask upper nibble DUP 9 > \ if n > 9 IF 37 + \ add $37 ELSE 30 + \ else add $30 THEN ;

Page 14: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

>R

Decrement top of return stack and branch back to <WHYP statements> if not equal to zero.Therefore, <WHYP statements> are executedn times.

FOR…NEXT Loop

n FOR <WHYP statements> NEXT

drjne <WHYP statements>

Page 15: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

BEGIN…AGAIN

BEGIN <WHYP statements> AGAIN

Page 16: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

BEGIN…UNTIL

BEGIN <WHYP statements> <flag> UNTIL

<flag> is either TRUE or FALSEusually from some WHYP conditional word

Page 17: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages

BEGIN…WHILE…REPEAT

BEGIN <words> <flag>

WHILE <words>

REPEAT