Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso Núcleo Comum Disciplina Linguagem de Programação Aula 1 Professora Cassiana Fagundes da Silva Conversa Inicial Olá aluno! Seja bem-vindo à primeira aula da disciplina Linguagem da Programação! Pronto para iniciar os estudos? Então acesse o material online assista à primeira parte davideoaula, nela a professora Cassiana Fagundes da Silva apresentará um pouco do seu currículo, assim como o que estudaremos nessa disciplina. Contextualizando Para armazenar um algoritmo na memória de um computador, é necessário que seja transcrito para uma linguagem que ele possa identificar, seja direta ou indiretamente. Os computadores só podem executar diretamente os algoritmos expressos em linguagem de programação. Objetivos da Aula Gerar no aluno o conhecimento necessário para que possa entender e classificar os seguintes temas: Linguagem de programação Linguagem de programação C Confira no material online o vídeo preparado pela professora Cassiana, ela mostrará o que estudaremos na aula de hoje! Linguagem de programação A linguagem de programação é uma ferramenta que permite ao programador ou usuário de computação escrever programas. Várias são as linguagens de programação existentes no mercado (tais como C, Java, PHP, entre outras), porém para cada linguagem faz-se necessário que o programador ou usuário saiba os símbolos e sintaxes definidas por esta, no intuito de combiná-los para produzir um programa válido. Você sabe como pode ser caracterizado um programa? Programa pode ser definido como um conjunto de instruções que devem ser seguidas pelo computador para realizar um determinado processo. Conhecer os benefícios de se estudar a linguagem de programação faz reafirmar a essencial importância do uso das ferramentas de programação, confira a seguir a descrição de alguns desses benefícios: Maior capacidade de desenvolver soluções computacionais para problemas, ou seja, quanto maior a compreensão sobre os conceitos de linguagens de programação maior a habilidade do programador em como pensar e resolver problemas. Maior habilidade ao usar uma nova linguagem de programação. À medida que o programador vai agregando conhecimento de outras linguagens, mais fácil do programador entender as modificações entre as linguagens, bem como a utilizá-las de forma mais inteligente e otimizada. Maior capacidade para escolher linguagens de programação apropriadas, isto é, quanto maior o domínio sobre as linguagens maior a capacidade de determinar qual linguagem melhor se adequa na resolução dos problemas. Maior habilidade para aprender novas linguagens de programação. Por exemplo, programadores que sabem os conceitos de orientação a objetos possuem maior facilidade em aprender linguagem que utilizem destes paradigmas. As linguagens de programação foram criadas para tornar o trabalho do programador mais produtivo e um dos seus objetivos principais é tornar mais efetivo o processo de desenvolvimento de software. Cabe ressaltar que, por meio destas linguagens de programação, é possível torná-los mais produtivos em sua geração e manutenção e, também, garantir que toda produção de software seja feita respeitando os padrões de qualidade. Independentemente de como é seguido o processo de desenvolvimento de software, é necessário que as linguagens de programação apresentem algumas propriedades desejáveis. Confira o significado de cada uma: Legibilidade - Esta propriedade trata da facilidade para se ler e entender um determinado programa. Quanto mais fácil for entender e seguir suas instruções, mais fácil será de compreender o que está sendo feito, bem como de descobrir possíveis erros de programação. Exemplo: media = (nota1 + nota 2)/2 Pelo exemplo é possível entender que a instrução se trata de calcular a média com base na soma de duas notas (1 e 2). Desta forma, pode-se dizer que este trecho do código apresenta uma boa legibilidade. Redigibilidade - Possibilita ao programador se dedicar aos aspectos mais relevantes da implementação, ou seja, não perde tempo buscando compreender características que não são necessárias para a resolução do problema. Confiabilidade - São os mecanismos fornecidos pela própria linguagem de programação para incentivar a construção de programas confiáveis. Por exemplo, as linguagens de programação que requerem a declaração de dados, permitem verificar automaticamente erros de tipos durante a compilação ou execução do programa. Eficiência - Determinadas linguagens de programação são mais recomendadas que outras devido às demandas por recursos de um tipo de aplicação. Desta forma, a propriedade eficiência é direcionada normalmente ao uso de linguagens de programação que visam minimizar o tempo de execução e de acesso aos dispositivos periféricos, bem como o consumo de espaço de memória. Facilidade de aprendizado - Capacidade de o programador aprender a linguagem com facilidade. Linguagens de programação que apresentam muitas características e formas de realizar a mesma funcionalidade tendem a ser mais complexas de aprender. Por exemplo, na linguagem de programação C, pode-se executar o comando de incremento de várias formas: c = c+1; c+=1; c++. Ortogonalidade - Possibilidade de o programador combinar seus conceitos básicos sem que se produzam efeitos distorcidos nessa combinação. Linguagens de programação ortogonais são interessantes porque os programadores podem prever, com segurança, o comportamento de uma determinada combinação de conceitos (Varejão, 2004). A falta de ortogonalidade dificulta o aprendizado da linguagem de programação e pode estimular a ocorrência de erros de programação. Reusabilidade - Pode-se dizer que esta é uma das propriedades mais desejáveis de uma linguagem de programação. Pois, possibilita reutilizar o mesmo código pra diversas aplicações, ou seja, quanto mais reutilizável for um código, maior será a sua produtividade de programação. Por exemplo, este trecho de código pode ser utilizado por qualquer aplicação que deseje trocar os valores de duas variáveis inteiras. void troca (int *x, int *y) { int z = *x; *x = *y; *y = z; } Modificabilidade - Refere-se às facilidades das linguagens de programação em possibilitar ao programador modificar o programa em função de novos requisitos (funcionalidades dos sistemas), sem que tais modificações impliquem mudanças em outras partes do programa. Portabilidade - Independente da linguagem em que o programa foi escrito este, deve se comportar da mesma forma independente que a ferramenta utilizada para traduzi-lo para a linguagem e máquina ou então para a arquitetura computacional (hardware ou sistema operacional) sobre o qual está sendo executado. Métodos de Implementação de Linguagens de Programação Todo e qualquer programa, independente em qual idioma seja escrito, necessita ser traduzido para uma linguagem de máquina para que possa ser executado. Para isso, faz-se necessário o uso de um conjunto de programas que recebe o código-fonte do programa a ser traduzido e, posteriormente, gere o código traduzido na linguagem de máquina. Dentre os métodos de implementação de tradução do código-fonte em linguagem de máquina para execução estão a compilação, interpretação pura e híbrido. Confira um esquema dos métodos de implementação das linguagens de programação!O método de implementação denominado de compilação efetua em seu processo a tradução integral do programa fonte para o código de máquina. Assim, uma vez traduzido o programa em linguagem de máquina este pode ser executado diretamente. Como vantagens deste método destaca-se a otimização da eficiência na execução do programa, pois esta é rápida devido a não necessitar traduzir durante a execução e, também, grande parte das verificações de erros já pode ser efetuada durante a tradução. Outro benefício do método é o processo de compilação que requer apenas o código executável para que o programa rode. No entanto, como desvantagens tem-se a falta de portabilidade do código executável, ou seja, uma vez executado para uma determinada arquitetura computacional este somente será executado nesta arquitetura. Por exemplo, um programa em C compilado sobre o ambiente Windows não é executável no ambiente Linux, e vice-versa. Diferente do método de implementação compilado, o método chamado de interpretação pura destina-se a simular um computador virtual capaz de entender as instruções da linguagem de programação. Em outras palavras, o código fonte é traduzido para a linguagem de máquina quando necessita ser executado e, posteriormente a essa execução, o código gerado é executado. Como vantagens este método apresenta a facilidade em prototipação, isto é, permite-se executar comandos ou partes do programa à medida que estes são construídos, verificando assim, se atuam corretamente estas instruções ou comandos. A execução mais lenta do programa é considerada uma desvantagem se comparada ao método de compilação. Essa lentidão é decorrente da necessidade de o interpretador decodificar comandos complexos da linguagem de programação, verificar erros do programa e gerar código em linguagem de máquina durante a própria execução do programa. O processo híbrido combina tanto a execução eficiente quanto a portabilidade de programas pela aplicação combinada dos métodos de compilação e interpretação. A base para este processo é a existência de um código intermediário, mais fácil de ser interpretado e, ao mesmo tempo, não específico de uma plataforma computacional. Assim, este método de implementação híbrido é dividido em duas partes, uma destinada à compilação para um código intermediário e a segunda para a interpretação desse código. Para Varejão (2004), embora a execução seja mais lenta que o código compilado, a interpretação do código intermediário é mais rápida se comparado à interpretação pura do código fonte. Paradigmas de Linguagens de Programação Como paradigmas de linguagem de programação chamamos um conjunto de características que serve para classificar um grupo de linguagens. Várias são as classificações dos paradigmas de linguagem de programação, porém a mais conhecida é a que divide estes em imperativo, orientado a objetos, funcional e lógico. Cabe ressaltar a não rigidez desta classificação, possibilitando as linguagens de programação ser enquadradas em outros paradigmas simultaneamente. Confira a seguir para conferir um esquema que demonstra duas classificações de paradigmas: imperativo e declarativo. O paradigma imperativo engloba os conceitos fundamentados na computação como um processo que realiza mudanças de estados. Os programas incluídos neste paradigma especificam como uma computação realizada por uma sequência de alterações no estado da memória do computador. O objetivo dos programas neste paradigma é especificar como um processamento deve ser realizado no computador, sendo os principais conceitos as variáveis, os valores e atribuições. O paradigma imperativo pode ser subdivido em estruturado, orientado a objetos e concorrente. No paradigma estruturado a programação se caracteriza pela existência de uma sequência monolítica de comandos e pelo uso de desvios condicionais e incondicionais para determinar o fluxo de controle da execução do programa. Desta forma, a programação estruturada organiza o fluxo de controle de execução dos programas desestimulando o uso de comandos de desvios incondicionais e incentivando a divisão dos programas em subprogramas e em blocos alinhados de comandos. Dentre as linguagens de programação mais conhecidas neste paradigma estruturado encontram-se a linguagem PASCAL e C. Por outro lado, no paradigma orientado a objetos o principal objetivo é utilizar os conceitos de objetos no desenvolvimento dos programas para torá-los mais rápidos e confiáveis. Enquanto que as linguagens que adotam o paradigma estruturado focam na abstração de controle de execução dos programas, as linguagens que adotam o paradigma orientado a objetos enfatizam a abstração dos dados como elemento básico da programação. Considera-se o paradigma orientado a objetos uma evolução do paradigma estruturado, principalmente no que tange a especificação dos métodos. As linguagens SMALTALK, C++ e Java são as mais conhecidas nesta classificação. O paradigma concorrente ocorre quando vários processos executam simultaneamente e concorrem por recursos. Este paradigma engloba linguagem como ADA e Java que oferecem facilidades no desenvolvimento destes sistemas. Em contraste aos paradigmas anteriores, no paradigma declarativo os programas são especificações sobre o que é determinada tarefa. Ou seja, o programador não precisa se preocupar sobre como o computador é implementado, muito menos saber qual melhor forma de realizar determinada tarefa. Para o programador o que importa é descrever de forma abstrata como determinada tarefa é resolvida. Este paradigma é subdivido em paradigma funcional e paradigma lógico. Por outro lado, o paradigma declarativo é totalmente baseado em linguagens lógicas que são baseadas em subconjuntos do cálculo de predicados. Como predicado define-se a relação entre constantes ou variáveis. E como característica principal deste paradigma lógico é que a execução dos programas corresponde a um processo de dedução automática. No paradigma funcional as linguagens de programação se caracterizam por operarem apenas sobre funções, as quais recebem listas de valores e retornam um determinado valor. Esta programação tem como finalidade definir uma função que retorne um valor como resposta do problema. As linguagens que se destacam nesta classificação são LISP e ML. A principal característica do paradigma lógico é que a execução dos programas corresponde a um processo de dedução automática. Para acompanhar as explicações da professora Cassiana sobre linguagem de programação, acesse o material online! Linguagem de programação C A linguagem de programação C é definida como sendo numa linguagem de alto nível e com uma finalidade genérica, isto é, pode ser utilizada para o desenvolvimento das mais diversas aplicações, a saber, sistemas operacionais, editores de texto, software para gerenciamento de cadastros, softwares para automação industrial entre outros. A linguagem de programação C foi criada em 1972 nos Bell Telephone Laboratories por Dennis Ritchie com o intuito de permitir a escrita de um sistema operacional, chamado Unix. Desta forma, C é uma linguagem extremamente potente e flexível. Confira abaixo suas características: Rapidez: consegue obter performances semelhantes às obtidas pela linguagem de baixo nível Assembly, através de instruções de alto nível. Simples: sua sintaxe é simples, e o número de palavras reservadas, de tipos de dados básicos e de operadores é pequeno, reduzindo assim a quantidade de tempo e esforço necessárioà aprendizagem da linguagem. Portável: existe um padrão (ANSI) que define as características de qualquer compilador. Assim, o código escrito numa linguagem de máquina pode ser transportado para outra máquina e compilado sem qualquer alteração. Popular: internacionalmente conhecida e utilizada. Extremamente bem documentada em livros, etc. Modular: a linguagem C permite o desenvolvimento modular de aplicações, facilitando a separação de projetos em módulos distintos e independentes. Alto nível: considerada uma linguagem de terceira geração, tal como PASCAL, COBOL< BASIC, etc. Case sensitive: a linguagem C faz diferenciação entre maiúsculas e minúsculas, não sendo portanto a mesma coisa escrever main(), Main() ou mAIN(). Conheça agora como é a estrutura básica de um programa em linguagem C: Diretivas para o pré-processador Declaração de variáveis globais main( ) /* função main */ { Declaração de variáveis locais; Ccomandos / instruções; } As diretivas para o pré-processador são prontamente reconhecidas, vista que aparecem quase sempre no início dos arquivos-fonte, com o prefixo # seguido pelo nome da diretiva e seus argumentos, conforme exemplo: #include <nome da diretiva> Ao contrário dos comandos normais, não se usa ponto e vírgula ao final da declaração da diretiva. Dentre todas as diretivas utilizadas na linguagem C. As diretivas para pré-processador mais conhecidas são as mostradas no esquema abaixo: Declarações de variáveis globais na linguagem de programação C precisam ser declaradas no início do programa, antes de serem utilizadas para comandos e instruções. Sempre ao se declarar variáveis faz-se necessário que estas respeitem as seguintes condições: O nome deve começar com uma letra ou sublinhado (_); Os caracteres que seguem devem ser letras, números ou sublinhado (_); O nome de uma variável não pode ser igual ao de uma palavra reservada, isto é, palavras utilizadas na sintaxe da linguagem. Como exemplos de nomes de variáveis válidas, podemos citar: nome, idade, num1, numero_1, media, endereço, rg, etc. Já como declarações de variáveis inválidas cita-se os exemplos: 1nota, @nome, media-final, %desconto, etc. Você sabia que, nas declarações de variáveis, além do cuidado na escolha do nome destas, é necessário que siga a sintaxe de programação? Confira agora os tipos de dados básicos utilizados em linguagem C: int – número inteiro; float – números reais ou de ponto flutuante; char – caractere; double – número em ponto flutuante de precisão dupla; void – resultado não possui nenhum tipo definido. Agora, veja os exemplos de declarações se variáveis e seus tipos de dados: int idade; int num1, num2, num3; float valor; char nome [10]; As variáveis aos serem declaradas juntamente com seus respectivos tipos de dados também podem ser inicializadas, conforme sintaxe: tipo de dado nome da variável = valor A linguagem C, permite ainda que valores possam ser atribuídos a variáveis ao mesmo momento em que está sendo declarada. Confira no exemplo a seguir: int idade = 38; int num1, num2, num3 = 10; float media = 70; float valor = 103.23; char letra = ‘a’. No programa desenvolvido em linguagem de programação C sempre será necessário uma função main(), ou seja, a função principal do programa onde iniciará a sua execução. Toda a função main é seguida de ( ) e de { abre e fecha }, confira: { : equivale ao inicio no programa estruturado } : equivale ao fim Outro ponto importante na estrutura básica de um programa em C são os comentários. Eles são utilizados para explicar como determinadas instruções e rotinas são executadas e, sempre, são compreendidos como um conjunto de caracteres entre os sinais de /* e */, conforme exemplo que segue: /* este é um exemplo de linha de comentário na linguagem de programação C */ Será que você conseguiu assimilar todo o conteúdo e conceitos que envolvem a linguagem de programação C? Para conferir as explicações sobre o tema preparadas pelo professora Cassiana, acesso o material online. Na Prática Agora, vamos testar seu conhecimento sobre tudo o que estudamos até agora? Resolva os exercícios a seguir! Linguagem de programação define-se como: a. ( ) Uma ferramenta que permite ao programador ou usuário de computação escrever programas. b. ( ) Maior capacidade de desenvolver soluções computacionais para problemas, ou seja, quanto maior a compreensão sobre os conceitos de linguagens de programação maior a habilidade do programador em como pensar e resolver problemas. c. ( ) A possibilidade de reutilizar o mesmo código para diversas aplicações, ou seja, quanto mais recusável for um código, maior será a sua produtividade de programação. d. ( ) A possibilidade de o programador combinar seus conceitos básicos sem que se produzam efeitos distorcidos nessa combinação. Gabarito: A alternativa a está correta! Quando devem ser utilizados os comentários na estrutura de um programa em C? a. ( ) Antes de qualquer instrução do programa. b. ( ) Depois de todas as instruções. c. ( ) Antes do main. d. ( ) Sempre que o programador ache necessário ou conveniente. Gabarito: A alternativa D está correta! Síntese A partir de tudo o que estudamos hoje, podemos concluir que a linguagem de programação é de suma importância para qualquer programador e é por meio dela que se torna possível aprender novas linguagens e ter maior domínio na resolução de problemas. Confira alguns tópicos que sintetizam a nossa aula de hoje: As linguagens de programação podem ser implementadas de três formas: compiladas, interpretadas e híbridas. Os paradigmas de linguagens de programação são classificados como: imperativo e declarativo. A linguagem de programação C é considerada de alto nível e totalmente compilada. Em C, um programa começa com a função main() e o código a executar sempre deve estar entre { }. Cada instrução deve ser seguida de ponto e vírgula. C faz distinção entre maiúsculas e minúsculas, por isso é definido como case sensitive. Para finalizar, acesse o material online para conferir a síntese preparada pela professora Cassiana! Até a próxima aula! Referências Bibliográficas DAMAS, Luis. Linguagem em C. 10ª ed. Trad. João Araujo Ribeiro, Orlando Bernardo Filho. Rio de Janeiro: LTC, 2013. VAREJÃO, Flávio Miguel. Linguagens de programação. Ed. Campus, 2004. Disponível em: http://www.inf.ufes.br/~fvarejao/livroLP.html
Compartilhar