Você está na página 1de 6

PONTIFCIA UNIVERSIDADE CATLICA DE GOIS

ESCOLA DE CINCIAS EXATAS E COMPUTAO

GABRIEL DIAS VILELA

PRIMEIRA ATIVIDADE DA DISCIPLINA DE COMPILADORES

GOINIA/2017
1. Descreva algumas tarefas que um programa montador deve realizar.
Entre as tarefas de um montador, tambm conhecido como assembler, esto:
1. Substituir os mnemnicos da instruo e modificadores de endereo pelos
equivalentes binrios;
2. Determinar posies de memria, relativas ao programa, para os endereos
simblicos (rtulos);
3. Substituir todas as referncias a um dado endereo simblico pelo endereo
binrio correspondente.

2. Procure pelo menos dois exemplos das seguintes linguagens de programao:


1. Linguagem de alto nvel compilada
As linguagens escolhidas como exemplo foram:
1. BASIC: linguagem de programao imperativa de alto nvel, criada
com fins didticos, pelos professores da Universidade de Dartmouth,
John George Kemeny e Thomas Eugene Kurtz em 1964.
Exemplo de um programa escrito em BASIC:

10 INPUT "ENTER TWO NUMBERS SEPARATED BY A COMMA:


20 LET S = N1 + N2
30 LET D = N1 - N2
40 LET P = N1 * N2
50 LET Q = N1 / N2
60 PRINT "THE SUM IS ", S
70 PRINT "THE DIFFERENCE IS ", D
80 PRINT "THE PRODUCT IS ", P
90 PRINT "THE QUOTIENT IS ", Q
100 END

2. Fortran: criada em 1954 pela IBM e seu primeiro compilador foi


implementado em 1957, para um computador de 1 gerao, o IBM 704
da prpria IBM. O FORTRAN verdadeiramente a primeira linguagem
de programao de alto-nvel concebida. At ento, a programao de
computadores envolvia o uso de linguagens de baixo-nvel, como a
linguagem ASSEMBLY, ou mesmo o uso da linguagem de mquina.
Exemplo de um programa escrito em Fortran:
implicit none
real a,b,s
c
c a - one of two numbers to be added
c b - the other number in the sum
c s - the sum of a and b
c
c Get the numbers from the program user
c First ask for the numbers
c
print *, ' This program adds 2 real numbers'
print *, ' Type them in now separated by a comma or
space'
c
c Now read the numbers that are typed by the user
c this Fortran read will wait unil the numbers are typed
c
read *, a,b
c
c Now calculate the sum
c
s = a + b
c
c Print out the results with a description
c
print *, 'The sum of ', a,' and ' , b
print *, ' is ' , s
stop
end

2. Linguagem de alto nvel interpretada


As linguagens escolhidas como exemplo foram:
1. Python: Python uma linguagem de programao de alto nvel,
interpretada, de script, imperativa, orientada a objetos, funcional,
de tipagem dinmica e forte, lanada por Guido van Rossum em 1991.
Atualmente possui um modelo de desenvolvimento comunitrio, aberto
e gerenciado pela organizao sem fins lucrativos Python Software
Foundation.
Exemplo de um programa escrito em Python:

import math
lista = []

for i in range(5):
lista.append(i ** 2)

resultado = sum(lista)
print( "Resultado do somatorio dos elementos numericos da
lista: %s " % resultado )

2. PHP: linguagem interpretada livre, usada originalmente apenas para o


desenvolvimento de aplicaes presentes e atuantes no lado do
servidor, capazes de gerar contedo dinmico na World Wide Web.

Exemplo de um programa escrito em PHP:


<?php
$lista = [];
for($i = 0; $i < 5; $i ++)
{
$lista[$i] = $i ** 2;
}

$resultado = array_sum($lista);
echo "Resultado do somatorio dos elementos numericos da lista:
".$resultado;
?>

3. Linguagem de alto nvel hbrida:


As linguagens escolhidas como exemplo foram:
1. C#: uma linguagem de programao interpretada, multi-paradigma,
fortemente 'tipada', e, possuindo paradigmas de
programao imperativa, funcional, declarativa, orientada a
objetos e genrica, C# foi desenvolvida pela Microsoft como parte
da plataforma .
Exemplo de um cdigo escrito em C#:
using System;
public class Teste
{
public static void Main()
{
int j, sum = 0;

Console.Write("\n\n");
Console.Write("Find the sum of first 10 natural
numbers:\n");

Console.Write("----------------------------------------------")
;
Console.Write("\n\n");

Console.Write("The first 10 natural number are :\n");


for (j = 1; j <= 10; j++)
{
sum = sum + j;
Console.Write("{0} ",j);
}
Console.Write("\nThe Sum is : {0}\n", sum);
}
}

2. Java: uma linguagem de programao interpretada orientada a


objetos desenvolvida na dcada de 90 por uma equipe de
programadores chefiada por James Gosling, na empresa Sun
Microsystems. Diferente das linguagens de programao
convencionais, que so compiladas para cdigo nativo, a linguagem
Java compilada para um bytecode que interpretado por
uma mquina virtual (Java Virtual Machine, mais conhecida pela sua
abreviao JVM).
Exemplo de um cdigo escrito em Java:
public class Factorial
{
public static void main(String[] args)
{ final int NUM_FACTS = 100;
for(int i = 0; i < NUM_FACTS; i++)
System.out.println( i + "! is " +
factorial(i));
}

public static int factorial(int n)


{ int result = 1;
for(int i = 2; i <= n; i++)
result *= i;
return result;
}
}

4. Linguagem de montagem interpretada:


As linguagens escolhidas como exemplo foram:
1. MIPS: conhecido como microprocessador sem estgios intertravados
de pipeline - no confundir com o outros significados de "MIPS", uma
arquitetura de microprocessadores RISC desenvolvida pela MIPS
Computer Systems.
Exemplo de um cdigo escrito em MIPS:

# Store 'Hello world!' at the top of the stack


ADDI $sp, $sp, -13
ADDI $t0, $zero, 72 # H
SB $t0, 0($sp)
ADDI $t0, $zero, 101 # e
SB $t0, 1($sp)
ADDI $t0, $zero, 108 # l
SB $t0, 2($sp)
ADDI $t0, $zero, 108 # l
SB $t0, 3($sp)
ADDI $t0, $zero, 111 # o
SB $t0, 4($sp)
ADDI $t0, $zero, 32 # (space)
SB $t0, 5($sp)
ADDI $t0, $zero, 119 # w
SB $t0, 6($sp)
ADDI $t0, $zero, 111 # o
SB $t0, 7($sp)
ADDI $t0, $zero, 114 # r
SB $t0, 8($sp)
ADDI $t0, $zero, 108 # l
SB $t0, 9($sp)
ADDI $t0, $zero, 100 # d
SB $t0, 10($sp)
ADDI $t0, $zero, 33 # !
SB $t0, 11($sp)
ADDI $t0, $zero, 0 # (null)
SB $t0, 12($sp)

ADDI $v0, $zero, 4 # 4 is for print string


ADDI $a0, $sp, 0
syscall # print to the log

Você também pode gostar