programming languages from fortran to whyp. a brief history of programming languages
Post on 20-Dec-2015
220 views
TRANSCRIPT
![Page 1: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/1.jpg)
Programming Languages
From FORTRAN to WHYP
![Page 2: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/3.jpg)
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 5: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/8.jpg)
Chuck Moorereading Haskell’sWHYP book
![Page 9: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/13.jpg)
\ 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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/14.jpg)
>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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/15.jpg)
BEGIN…AGAIN
BEGIN <WHYP statements> AGAIN
![Page 16: Programming Languages From FORTRAN to WHYP. A Brief History of Programming Languages](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649d435503460f94a1fc8c/html5/thumbnails/17.jpg)
BEGIN…WHILE…REPEAT
BEGIN <words> <flag>
WHILE <words>
REPEAT