Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Desenvolva um programa na linguagem de programação SIMPLE, que leia três números do usuário e os apresente em ordem crescente. Por exemplo, caso os números fornecidos pelo usuário sejam 5, 7 e 4, o programa deverá apresentar como resposta a sequência 4 5 7. Posteriormente, apresente a identificação de todos os tokens utilizados na elaboração do programa.

 

10 input a
15 input b
20 input c
25 if a < b goto 45
30 let x = a
35 let a = b
40 let b = x
45 if a < c goto 65
50 let x = a
55 let a = c
60 let c = x
65 if b < c goto 85
70 let x = b
75 let b = c
80 let c = x
85 print a
90 print b
95 print c
99 end
Tabela de símbolos
CódigoValor CódigoValor CódigoValor
0010 01a 0215
03b 0420 05c
0625 0745 0830
09x 1035 1140
1265 1350 1455
1560 1685 1770
1875 1980 2090
2195 2299   
[51, 00, (01, 01)] // 10
[62, , (01, 04)] // input
[41, 01, (01, 10)] // a
[10, , (01, 11)] // ENTER
[51, 02, (02, 01)] // 15
[62, , (02, 04)] // input
[41, 03, (02, 10)] // b
[10, , (02, 11)] // ENTER
[51, 04, (03, 01)] // 20
[62, , (03, 04)] // input
[41, 05, (03, 10)] // c
[10, , (03, 11)] // ENTER
[51, 06, (04, 01)] // 25
[66, , (04, 04)] // if
[41, 01, (04, 07)] // a
[34, , (04, 09)] // <
[41, 03, (04, 11)] // b
[65, , (04, 13)] // goto
[51, 07, (04, 18)] // 45
[10, , (04, 20)] // ENTER
[51, 08, (05, 01)] // 30
[63, , (05, 04)] // let
[41, 09, (05, 08)] // x
[11, , (05, 10)] // =
[41, 01, (05, 12)] // a
[10, , (05, 13)] // ENTER
[51, 10, (06, 01)] // 35
[63, , (06, 04)] // let
[41, 01, (06, 08)] // a
[11, , (06, 10)] // =
[41, 03, (06, 12)] // b
[10, , (06, 13)] // ENTER
[51, 11, (07, 01)] // 40
[63, , (07, 04)] // let
[41, 03, (07, 08)] // b
[11, , (07, 10)] // =
[41, 09, (07, 12)] // x
[10, , (07, 13)] // ENTER
[51, 07, (08, 01)] // 45
[66, , (08, 04)] // if
[41, 01, (08, 07)] // a
[34, , (08, 09)] // <
[41, 05, (08, 11)] // c
[65, , (08, 13)] // goto
[51, 12, (08, 18)] // 65
[10, , (08, 20)] // ENTER
[51, 13, (09, 01)] // 50
[63, , (09, 04)] // let
[41, 09, (09, 08)] // x
[11, , (09, 10)] // =
[41, 01, (09, 12)] // a
[10, , (09, 13)] // ENTER
[51, 14, (10, 01)] // 55
[63, , (10, 04)] // let
[41, 01, (10, 08)] // a
[11, , (10, 10)] // =
[41, 05, (10, 12)] // c
[10, , (10, 13)] // ENTER
[51, 15, (11, 01)] // 60
[63, , (11, 04)] // let
[41, 05, (11, 08)] // c
[11, , (11, 10)] // =
[41, 09, (11, 12)] // x
[10, , (11, 13)] // ENTER
[51, 12, (12, 01)] // 65
[66, , (12, 04)] // if
[41, 03, (12, 07)] // b
[34, , (12, 09)] // <
[41, 05, (12, 11)] // c
[65, , (12, 13)] // goto
[51, 16, (12, 18)] // 85
[10, , (12, 20)] // ENTER
[51, 17, (13, 01)] // 70
[63, , (13, 04)] // let
[41, 09, (13, 08)] // x
[11, , (13, 10)] // =
[41, 03, (13, 12)] // b
[10, , (13, 13)] // ENTER
[51, 18, (14, 01)] // 75
[63, , (14, 04)] // let
[41, 03, (14, 08)] // b
[11, , (14, 10)] // =
[41, 05, (14, 12)] // c
[10, , (14, 13)] // ENTER
[51, 19, (15, 01)] // 80
[63, , (15, 04)] // let
[41, 05, (15, 08)] // c
[11, , (15, 10)] // =
[41, 09, (15, 12)] // x
[10, , (15, 13)] // ENTER
[51, 16, (16, 01)] // 85
[64, , (16, 04)] // print
[41, 01, (16, 10)] // a
[10, , (16, 11)] // ENTER
[51, 20, (17, 01)] // 90
[64, , (17, 04)] // print
[41, 03, (17, 10)] // b
[10, , (17, 11)] // ENTER
[51, 21, (18, 01)] // 95
[64, , (18, 04)] // print
[41, 05, (18, 10)] // c
[10, , (18, 11)] // ENTER
[51, 22, (19, 01)] // 99
[67, , (19, 04)] // end
[03, , (19, 07)] // ETF