Title: Programming Languages
1Programming Languages
2A Brief History of Programming Languages
http//www.byte.com/art/9509/sec7/art19.htm
http//merd.net/pixel/language-study/diagram.html
3How would you have a computer evaluate this
expression?
X AB (C D)/(E F)
Reverse Polish Notation (RPN) Postfix ABCD-EF/
4Forth
http//www.ultratechnology.com/dindex.htm
5WHYP
- Pronounced whip
- Words to Help You Program
- Subroutine-threaded Forth for Embedded Systems
- 68HC11 (16-bit)
- 68332 (32-bit)
- 68HC12 (16-bit)
6WHYP is developed from scratch in the new
bookDesign of Embedded Systems Using 68HC12/11
MicrocontrollersbyRichard E. HaskellPrentice
Hall, 2000
7FORTH is a programming language that ---
- was invented by Charles Moore in the early 70s
- 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
8Chuck Moore reading Haskells WHYP book
9WHYP Colon Definitions
squared ( n -- n2) DUP cubed ( n
-- n3) DUP \ n n squared \ n
n2 \ n3
10Branching and Looping in WHYP
- IFELSETHEN
- FORNEXT
- BEGINAGAIN
- BEGINUNTIL
- BEGINWHILEREPEAT
11IFELSETHEN
ltcondgt IF lttrue statementsgt ELSE ltfalse
statementsgt THEN
ltcondgt is either TRUE (-1) or FALSE (0)
12WHYP Conditional Words
lt ( n1 n2 -- f ) (less-than) gt ( n1 n2 -- f
) (greater-than) ( n1 n2 -- f
) (equals) ltgt ( n1 n2 -- f ) (not-equals) lt (
n1 n2 -- f ) (less-than or equal) gt ( n1 n2
-- f ) (greater-than or equal) 0lt ( n --
f) (zero-less) 0gt ( n -- f) (zero-greater) 0
( n -- f) (zero-equal) Ult ( u1 u2 -- f
) (U-less-than) Ugt ( u1 u2 -- f
) (U-greater-than) Ult ( u1 u2 -- f
) (U-less-than or equal) Ugt ( u1 u2 -- f
) (U-greater-than or equal)
13(No Transcript)
14FORNEXT Loop
n FOR ltWHYP statementsgt NEXT
gtR
drjne ltWHYP statementsgt
Decrement top of return stack and branch back to
ltWHYP statementsgt if not equal to
zero. Therefore, ltWHYP statementsgt are executed n
times.
15BEGINAGAIN
BEGIN ltWHYP statementsgt AGAIN
16BEGINUNTIL
BEGIN ltWHYP statementsgt ltflaggt UNTIL
ltflaggt is either TRUE or FALSE usually from some
WHYP conditional word
17BEGINWHILEREPEAT
BEGIN ltwordsgt ltflaggt WHILE ltwordsgt REPEAT