Ola, Gostaria de compartilhar dois links que achei interessantes:Este apresenta um diagrama com a evolucao das linguagens na linha do tempo.http://www.levenez.com/lang/lang.pdf Este outro nos mostra como e a sintaxe de um simples "helloworld" escrito em diversas linguagens.http://www2.latech.edu/~acm/HelloWorld.htmlVeja como e programar em assembler:http://www2.latech.edu/~acm/helloworld/z80.htmlViu? Simples! nao? Subprogramas sao blocos de construcao fundamentais de programas e, portanto, estao entre os conceitos mais importantes no projeto de linguagens de programacao.Introducao:Duas facilidades de abstracao fundamentais podem ser incluidas em uma linguagem de programacao: abstracao de processos e abstracao de dados.O primeiro computador programavel, a Maquina Analitica de Babbage, construida na decada de 1980, tinha capacidade de reutilizar colecoes de cartoes de instrucoes em diversos lugares diferentes em um programa quando isso era conveniente. Em uma linguagem de programacao moderna, essa colecao de instrucoes era escrita como um subprograma. Tal reutilizacao resulta em diversos tipos diferentes de economia, de espaco de memoria a tempo de codificacao. Caracteristicas gerais do subprograma:Cada subprograma tem um unico ponto de entrada.Toda unidade de programa chamadora e suspensa durante a execucao do programa chamado, o que implica na existencia de somente um subprograma em execucao em qualquer momento dado. O controle sempre torna ao chamador quando a execucao do subprograma encerra-seDefinicoes basicas:Uma definicao de subprograma descreve a interface e as acoes da abstracao de subprograma. Uma chamada a subprograma e a solicitacao explicita para executar o programa. Diz-se que um subprograma e ativo se, depois de ter sido chamado, ele iniciou a execucao, mas ainda nao a concluiu.Um cabecalho de subprograma, a primeira linha da definicao, serve a diversos propositos, como especificando que a unidade sintatica seguinte e uma definicao de subprograma de algum tipo particular.void adder (parametros)serviria como o cabecalho de uma funcao chamada adder, em que void indica que ela nao retorna um valor.O perfil parametro de um subprograma e o numero, a ordem e o tipo de seus parametros formais. O protocolo de um subprograma e seu perfil de parametros mais, se for uma funcao, seu tipo de retorno. Em linguagens em que os subprogramas tem tipos, estes sao definidos pelo protocolo do subprograma.As declaracoes do subprograma sao comuns em programas C, onde sao chamadas de prototipos. Elas tambem sao usadas na Ada e no Pascal, nas quais, as vezes, sao chamadas de declaracoes forward ou externas.ParametrosOs subprogramas tipicamente descrevem computacoes. Ha duas maneiras pelas quais um subprograma pode ganhar acesso aos dados que devem processar: pelo o acesso direta a variaveis nao-locais ou pela passagem de parametros.Em algumas situacoes, e conveniente ser capaz de transmitir computacoes, em dedados, como parametros a subprogramas.Os parametros no cabecalho de subprograma sao chamados de parametros formais. Por vezes, recebe o nome de variaveis burras, porque nao as sao no sentido usual: em alguns casos, vinculam-se no armazenamento somente quando o subprograma e chamado o que frequentemente se da em algumas variaveis de programa.As instrucoes de chamada a subprogramas incluem o nome dele uma lista de parametros a serem vinculados a seus formais. Esses parametros sao chamados de reais.Em quase todas as linguagens de programacao, a correspondencia entre parametros reais e formais ou a