Linguagem de programação • Linguagem de programação – Implementação de algoritmos – Tradução em código executável (fonte => objeto => executável) – Processo de tradução: dependente de máquina • Java • Padrões (C ANSI) – Compartilhamento de “módulos” ou procedimentos – Adequação: velocidade, sintaxe, requisitos Linguagem de programação • Linguagem de programação – Comandos • Palavras-chave de uma linguagem associadas a implementações específicas – Variáveis • Recursos de armazenamento de valores que podem ser modificados durante a execução de programas – Constantes • Recursos para armazenamento de valores estáticos durante a execução de programas Linguagem de programação • Linguagem de programação – Programas • Seqüência de comandos de uma linguagem, em formato padronizado, que permite a implementação de algoritmos • Fonte: descrição original, em formato texto, pelo programador • Executável: descrição na linguagem de máquina do processador em que deve ser executado • Objeto: formato intermediário, usadopara composição de código com diversos módulos Linguagem de programação • Linguagem de programação – Programas • Exemplo: #include <stdio.h> /* impressão de uma mensagem simples */ main() { printf(“\n Mensagem inicial em c! \n”); return 0; } Linguagem de programação • Linguagem de programação – Tipos de dados • Numéricos • Lógicos • Texto – Expressões • Conjunto de operadores e valores ou variáveis, utilizado para a implementação de cálculos Linguagem de programação • Linguagem de programação – Expressões • Exemplo: média – – – – Variável 1 -> valor da primeira prova (v1) Variável 2 -> valor da segunda prova (v2) Variável média -> média aritmética das duas (v1 e v2) Operadores: atribuição soma e divisão • media = (v1 + v2) / 2; Linguagem de programação • Linguagem de programação – Expressões • Operadores – Aritméticos – Lógicos – Atribuição Introdução • Algoritmo => linguagem de programação Exibir o resultado C++ Cout<< endl<<“Resultado: “ <<valor<<endl; C printf(“\nResultado: %d\n”,valor); Mapeamento para a linguagem de programação PHP echo(“\nResultado: “.$valor.”\n”); PASCAL write(“Resultado: “); Writeln(valor); Python print “\nResultado:” print valor ASSEMBLY valor dw 00 mens db 13,10,“Resultado:” res db 0000 db “$” ....... ;conversão de valor/ASCII ........ mov ah,9 mov dx, offset mens Int 21h Introdução • Implementação de programas No Visual C++: disco Gera arquivo fonte (.cpp) Editor de texto Lê arquivo fonte (.cpp) Gera arquivo objeto Compilador Lê arquivo objeto, Lê arquivos de bibliotecas Gera arquivo executável Editor de ligação (linker) -File New -File Save -Build compile -Build build .exe Introdução • Implementação de programas No Visual C++: -File New -File Save -Build compile -Build build .exe L Z ø+A2L k .drectve b $ .debug$S „ † H B.CRT$XCU – ¢ @ 0À.text = À ý % P`.rdata = @[email protected]$S N N œ H B.text Ö ° †# ¨$ P`.text$x D% W% P`.xdata$x ` u% Õ% @ @@.debug$S & '( HB.text N Ÿ( í( ) P`.debug$S ± ) È) HB.text * Ü) * P`.debug$S Ž * š* HB.text 5 ®* ã* ÷* P`.debug$S w H B-defaultlib:libcpd -defaultlib:LIBCD -defaultlib:OLDNAMES -editandcontinue -include:___pfnBkCheck J ptrdiff_t __exString exception u size_t y _s__CatchableType ! wchar_t 6 _TypeDescriptor J FILE f _PMFN p va_list@ + D + X \ k o ƒ P ‡ P œ ¯ § ³ § á å F š U‹ìƒì@SVW }À¹ ¸ÌÌÌÌó«h h è ƒÄ3À_^[ƒÄ@;ìè ‹å]à # 1 5 ! * , Bem vindo Introdução No Visual C++: -File New -File Save -Build compile -Build build .exe // teste in C++ #include <iostream> int main() { std::cout << "Bem vindo C++!\n"; return 0; } Material e recursos • Bibliografia – Terada, Routo. Desenvolvimento de Algoritmos e Estruturas de Dados. São Paulo: McGraw-Hill, 1991. – Lee, Richard C.. Tepfenhart, William M.. Paschoa, Celso Roberto (trad.). UML e C++: Guia Prático de Desenvolvimento Orientado a Objeto. São Paulo: Makron, 2001. – Wirth, Niklaus. Lee, Cheng Mei (trad.). Algoritmos e Estruturas de Dados. Rio de Janeiro: LTC, 1989-1999. – Szwarcfiter, Jayme Luiz. Markenzon, Lilian. Estruturas de Dados e seus Algoritmos. 2. ed. Rio de Janeiro: Livros Técnicos e Científicos, 1994. – Preiss, Bruno R.. Gouvêa, Elizabeth Ferreira (trad.). Estruturas de Dados e Algoritmos: Padrões de Projetos Orientados a Objetos com Java. Rio de Janeiro: Campus, 2000.