Análise comparativa das linguagens de programação de alto nível C e Pascal. Palestra: Linguagens de programação de alto nível. Características comparativas Análise comparativa de linguagens de programação modernas

Enviar seu bom trabalho na base de conhecimento é simples. Use o formulário abaixo

Estudantes, estudantes de pós-graduação, jovens cientistas que utilizam a base de conhecimento em seus estudos e trabalhos ficarão muito gratos a você.

Postado em http://www.allbest.ru/

Ministério do Ensino Superior EspecializadoFederação Russa

Agência Federal de Educação

OGIET

ABSTRATO

disciplina: Ciência da Computação

no tema: “Análise comparativa de linguagens de programação”

Introdução

Código de máquina do processador

Algoritmo e programa

O que é uma linguagem de programação

Compiladores e intérpretes

Níveis de linguagens de programação

Gerações de linguagens de programação

Visão geral das linguagens de programação de alto nível

Linguagens de programação de banco de dados

Linguagens de programação para Internet

Linguagens de modelagem

Outras linguagens de programação

Conclusão

Bibliografia

Introdução

O advento dos primeiros computadores deu origem à programação como ciência. As primeiras teorias matemáticas de processamento de informações, meios de comprovar a correção de programas, otimização de código, criação de compiladores eficazes, testes formais, etc. foram desenvolvidas. Então, com o advento das linguagens de programação universais de terceira geração, esses aspectos tornaram-se menos relevantes -. a pesquisa continuou e continua principalmente no campo da geração automática de textos fonte e do aumento da eficiência dos compiladores. A programação tornou-se uma arte - milhões de pessoas que não tinham educação especial tiveram a oportunidade de usar computadores para resolver seus próprios problemas aplicados, o que exigia que dominassem a capacidade de criar programas que funcionassem corretamente. A programação continua sendo uma arte hoje para desenvolvedores profissionais e amadores que criam programas sozinhos ou em pequenas empresas, onde a habilidade individual decide tudo.

Código de máquina do processador

Um processador de computador é um grande circuito integrado. Ele recebe todos os comandos e dados na forma de sinais elétricos. Na verdade, o processador pode ser considerado como uma enorme coleção de elementos eletrônicos bastante simples - transistores. O transistor possui três terminais. Os dois extremos são alimentados com a tensão necessária para criar uma corrente elétrica no transistor, e o terminal do meio é alimentado com tensão, que pode ser usada para controlar a resistência interna do transistor e, portanto, controlar tanto a corrente quanto a tensão em seus terminais.

Na eletrônica, os transistores têm três usos: para criar amplificadores, em circuitos eletrônicos que possuem propriedades auto-oscilantes e em interruptores eletrônicos. O último método é usado em computação digital. Em um processador de computador, os transistores são agrupados em microelementos chamados flip-flops e portas. Os gatilhos têm dois estados estáveis ​​(aberto - fechado) e mudam de um estado para outro por meio de sinais elétricos. Esses estados estáveis ​​correspondem aos conceitos matemáticos de 0 ou 1. As portas são um pouco mais complexas - podem ter diversas entradas (a tensão de saída depende de combinações de tensões nas entradas) e são usadas para operações aritméticas e lógicas simples.

Os comandos que entram no processador através de seus barramentos são, na verdade, sinais elétricos, mas também podem ser representados como uma coleção de zeros e uns, ou seja, números. Equipes diferentes têm números diferentes. Portanto, o programa real com o qual o processador trabalha é uma sequência de números chamada código de máquina.

Algoritmo e programa

Você precisa controlar o computador de acordo com um determinado algoritmo. Um algoritmo é uma descrição definida com precisão de um método para resolver um problema na forma de uma sequência finita (no tempo) de ações. Essa descrição também é chamada de formal. Linguagens de programação são usadas para apresentar o algoritmo de uma forma compreensível para um computador. Primeiro, um algoritmo de ação é sempre desenvolvido e depois é escrito em uma dessas linguagens. O resultado é um texto de programa - uma descrição completa, completa e detalhada do algoritmo em uma linguagem de programação. Em seguida, o texto do programa é traduzido em código de máquina ou executado por aplicativos utilitários especiais chamados tradutores.

O que é uma linguagem de programação

É muito difícil escrever você mesmo um programa em código de máquina, e essa complexidade aumenta acentuadamente com o aumento do tamanho do programa e a complexidade de resolver o problema desejado. Convencionalmente, podemos assumir que o código de máquina é aceitável se o tamanho do programa não exceder várias dezenas de bytes e não houver necessidade de operações manuais de entrada/saída de dados.

Portanto, hoje quase todos os programas são criados em linguagens de programação. Teoricamente, um programa pode ser escrito usando linguagem humana comum (natural) - isso é chamado de programação em metalinguagem (uma abordagem semelhante geralmente é usada na fase de compilação de um algoritmo), mas ainda não é possível traduzir automaticamente tal programa em código de máquina devido à alta ambigüidade da linguagem natural.

Linguagens de programação são linguagens artificiais. Eles diferem dos naturais por um número limitado de “palavras”, cujo significado é claro para o tradutor, e por regras muito rígidas para escrever comandos (operadores). A totalidade de tais requisitos forma a sintaxe de uma linguagem de programação, e o significado de cada comando e outras construções da linguagem forma sua semântica. A violação da forma de escrita do programa leva ao fato de o tradutor não conseguir entender a finalidade do operador e exibir uma mensagem sobre um erro de sintaxe, e ao uso de comandos de linguagem que estão escritos corretamente, mas não correspondem ao algoritmo, leva a erros semânticos (também chamados de erros lógicos ou erros de tempo de execução).

O processo de localização de erros em um programa é chamado de teste, o processo de eliminação de erros é chamado de depuração.

Compiladores e intérpretes

interpretador compilador de linguagem de programação

Utilizando uma linguagem de programação, não se cria um programa acabado, mas apenas o seu texto, que descreve um algoritmo previamente desenvolvido. Para obter um programa funcional, você precisa traduzir automaticamente este texto em código de máquina (programas compiladores são usados ​​​​para isso) e então usá-lo separadamente do texto fonte, ou executar imediatamente os comandos de linguagem especificados no texto do programa (os programas intérpretes fazem esse).

O intérprete pega a próxima instrução de linguagem do texto do programa, analisa sua estrutura e a executa imediatamente (geralmente, após a análise, a instrução é traduzida em alguma representação intermediária ou mesmo em código de máquina para uma execução posterior mais eficiente). Somente depois que a instrução atual for concluída com êxito o intérprete passará para a próxima. Além disso, se o mesmo operador precisar ser executado múltiplas vezes em um programa, o interpretador irá executá-lo cada vez como se fosse encontrado pela primeira vez. Como resultado, os programas que exigem uma grande quantidade de cálculos repetitivos podem ser executados lentamente. Além disso, para rodar tal programa em outro computador, também deve estar instalado um intérprete - afinal, sem ele, o texto do programa é apenas um conjunto de caracteres.

De outra forma, podemos dizer que o intérprete modela um determinado computador virtual, para o qual as instruções básicas não são comandos elementares do processador, mas sim operadores de linguagem de programação.

Os compiladores processam todo o texto de um programa (às vezes chamado de código-fonte). Eles o examinam em busca de erros de sintaxe (às vezes várias vezes), realizam algumas análises semânticas e, em seguida, o traduzem (traduzem) automaticamente para linguagem de máquina – gerando código de máquina. Freqüentemente, a otimização é realizada usando um conjunto de métodos que melhoram o desempenho do programa (por exemplo, usando instruções direcionadas a um processador específico, eliminando instruções desnecessárias, cálculos intermediários, etc.). O programa completo resultante é compacto e eficiente, roda centenas de vezes mais rápido que um programa executado usando um interpretador e pode ser transferido para outros computadores com um processador que suporte o código de máquina apropriado.

A principal desvantagem dos compiladores é a laboriosidade de traduzir linguagens de programação focadas no processamento de dados de uma estrutura complexa, muitas vezes desconhecida antecipadamente ou que muda dinamicamente durante a operação do programa. Então você tem que inserir muitas verificações adicionais no código da máquina, analisar a disponibilidade de recursos do sistema operacional, capturá-los e liberá-los dinamicamente, formar e processar objetos complexos na memória do computador, o que é bastante difícil de fazer no nível de disco rígido -instruções de máquina codificadas e para uma série de tarefas é quase impossível.

Com a ajuda de um intérprete, ao contrário, é possível interromper o programa a qualquer momento, examinar o conteúdo da memória, organizar um diálogo com o usuário, realizar transformações de dados arbitrariamente complexas e ao mesmo tempo monitorar constantemente o estado do ambiente de software e hardware circundante, alcançando assim alta confiabilidade de operação. Ao executar cada instrução, o intérprete verifica diversas características do sistema operacional e, se necessário, informa o desenvolvedor com o máximo de detalhes possível sobre os problemas emergentes. Além disso, o intérprete é muito conveniente para usar como ferramenta de aprendizagem de programação, pois permite compreender os princípios de funcionamento de qualquer operador individual na linguagem.

Em sistemas de programação reais, as tecnologias de compilação e interpretação são misturadas. Durante a depuração, o programa pode ser executado passo a passo, e o código resultante não precisa ser código de máquina - pode até ser código-fonte escrito em outra linguagem de programação (isso simplifica muito o processo de tradução, mas requer um compilador para o final linguagem), ou código intermediário independente de máquina, um processador abstrato que, em várias arquiteturas de computador, será executado usando um interpretador ou compilado no código de máquina correspondente.

Níveis de linguagens de programação

Diferentes tipos de processadores possuem diferentes conjuntos de instruções. Se uma linguagem de programação se concentra em um tipo específico de processador e leva em consideração seus recursos, ela é chamada de linguagem de programação de baixo nível. Neste caso, “nível baixo” não significa “ruim”. Isso significa que os operadores da linguagem estão próximos do código de máquina e focados em comandos específicos do processador.

A linguagem de nível mais baixo é a linguagem assembly, que simplesmente representa cada instrução do código de máquina, não como números, mas usando convenções simbólicas chamadas mnemônicos. A conversão inequívoca de uma instrução de máquina em uma instrução assembly é chamada de transliteração. Como os conjuntos de instruções para cada modelo de processador são diferentes, uma arquitetura de computador específica possui sua própria linguagem assembly e um programa escrito nela só pode ser usado nesse ambiente.

Linguagens de baixo nível criam programas muito eficientes e compactos porque o desenvolvedor tem acesso a todos os recursos do processador. Por outro lado, requer um conhecimento muito bom do computador, a depuração de aplicativos grandes é difícil e o programa resultante não pode ser transferido para um computador com um tipo de processador diferente. Essas linguagens são geralmente usadas para escrever pequenos aplicativos de sistema, drivers de dispositivos e módulos de interface com equipamentos não padrão, quando a compactação, o desempenho e a capacidade de acessar recursos de hardware diretamente se tornam os requisitos mais importantes. Em alguns campos, como computação gráfica, as bibliotecas são escritas em linguagem assembly para implementar com eficiência algoritmos de processamento de imagem computacionalmente intensivos.

As linguagens de programação de alto nível são muito mais próximas e compreensíveis para os humanos do que para os computadores. Neles não são levadas em consideração as características de arquiteturas de computadores específicas, portanto os programas criados no nível do texto fonte são facilmente portáveis ​​para outras plataformas para as quais foi criado um tradutor desta linguagem. É muito mais fácil desenvolver programas em linguagens de alto nível usando comandos claros e poderosos, e há muito menos erros cometidos na criação de programas.

Gerações de linguagens de programação

As linguagens de programação são geralmente divididas em cinco gerações. A primeira geração inclui linguagens criadas no início dos anos 50, quando os primeiros computadores acabavam de nascer. Foi a primeira linguagem assembly criada com base no princípio “uma instrução - uma linha”.

O apogeu da segunda geração de linguagens de programação ocorreu no final dos anos 50 e início dos anos 60. Em seguida, foi desenvolvido um montador simbólico, no qual apareceu o conceito de variável. Tornou-se a primeira linguagem de programação completa. Graças ao seu surgimento, a velocidade de desenvolvimento e a confiabilidade dos programas aumentaram visivelmente.

O surgimento da terceira geração de linguagens de programação costuma ser atribuído à década de 60. Nessa época nasceram as linguagens universais de alto nível, com a ajuda delas é possível resolver problemas de qualquer área. As qualidades das novas linguagens, como relativa simplicidade, independência de um computador específico e a capacidade de usar estruturas sintáticas poderosas, tornaram possível aumentar drasticamente a produtividade dos programadores. A estrutura destas linguagens, compreensível para a maioria dos utilizadores, atraiu um número significativo de especialistas de áreas não informáticas para escrever pequenos programas (normalmente de natureza engenharia ou económica). A grande maioria das linguagens desta geração são utilizadas com sucesso hoje.

Do início da década de 70 até o presente, continua o período das línguas de quarta geração. Essas linguagens são projetadas para implementar grandes projetos, aumentar sua confiabilidade e velocidade de criação. Geralmente são focados em áreas de aplicação especializadas, onde bons resultados podem ser alcançados usando linguagens não universais, mas orientadas a problemas que operam com conceitos específicos de uma área temática restrita. Como regra, operadores poderosos são incorporados a essas linguagens, permitindo que uma linha descreva funcionalidades que exigiriam milhares de linhas de código-fonte para serem implementadas em linguagens mais recentes.

O nascimento das línguas de quinta geração ocorreu em meados dos anos 90. Estes também incluem sistemas para criação automática de programas aplicativos usando ferramentas de desenvolvimento visual, sem conhecimento de programação. A ideia principal por trás dessas linguagens é a capacidade de gerar automaticamente o texto resultante em linguagens de programação universais (que então precisam ser compiladas). As instruções são inseridas no computador da forma mais visual, usando métodos mais convenientes para uma pessoa não familiarizada com programação.

Visão geral das linguagens de programação de alto nível

FORTRAN(Fortran). É a primeira linguagem compilada, criada por Jim Backus na década de 50. Os programadores que desenvolveram programas exclusivamente em linguagem assembly expressaram sérias dúvidas sobre a possibilidade de uma linguagem de alto nível e alto desempenho, portanto o principal critério no desenvolvimento de compiladores Fortran foi a eficiência do código executável. Embora Fortran tenha sido pioneiro em vários conceitos de programação importantes, a facilidade de escrever programas foi sacrificada pela capacidade de produzir código de máquina eficiente. No entanto, um grande número de bibliotecas foi criado para esta linguagem, desde complexos estatísticos até pacotes de controle de satélite, de modo que o Fortran continua a ser usado ativamente em muitas organizações, e agora está em andamento o trabalho no próximo padrão Fortran P2k, que aparecerá em 2000. Existe uma versão padrão do Fortran chamada HPF (High Performance Fortran) para supercomputadores paralelos com múltiplos processadores.

SOVOeu(Cobol). É uma linguagem compilada para uso em problemas de economia e negócios, desenvolvida no início dos anos 60. É caracterizado por grande "verbosidade" - suas declarações às vezes parecem frases comuns em inglês. Cobol forneceu ferramentas muito poderosas para trabalhar com grandes quantidades de dados armazenados em diversas mídias externas. Muitos aplicativos foram criados nesta linguagem, que ainda hoje são usados ​​ativamente. Basta dizer que os programadores COBOL recebem os salários mais altos dos Estados Unidos.

Algol(ALGOL). Uma linguagem compilada criada em 1960. A intenção era substituir o Fortran, mas devido à sua estrutura mais complexa não foi amplamente utilizado. Em 1968, foi criada uma versão do Algol 68, que em suas capacidades ainda está à frente de muitas linguagens de programação hoje, mas devido à falta de computadores suficientemente eficientes para isso, não foi possível criar bons compiladores para ele em um maneira oportuna.

Paskal(Pascal). A linguagem Pascal, criada no final dos anos 70 pelo fundador de muitas ideias de programação modernas, Niklaus Wirth, lembra em muitos aspectos o Algol, mas reforçou uma série de requisitos para a estrutura do programa e possui recursos que permitem seu sucesso. usado ao criar grandes projetos.

Básico(BÁSICO). Existem compiladores e intérpretes para esta linguagem e, em termos de popularidade, ela ocupa o primeiro lugar no mundo. Foi criada na década de 60 como linguagem educacional e é muito fácil de aprender.

C (Si). Esta linguagem foi criada no Laboratório Bell e inicialmente não foi considerada uma linguagem de massa. Foi planejada a substituição da linguagem assembly para poder criar programas igualmente eficientes e compactos e ao mesmo tempo não depender de um determinado tipo de processador.

C é semelhante ao Pascal em muitos aspectos e possui recursos adicionais para trabalhar diretamente com memória (ponteiros). Na década de 70, muitos programas aplicativos e de sistema e vários sistemas operacionais conhecidos (11pgx) foram escritos nesta linguagem.

C++(C++). C++ é uma extensão orientada a objetos da linguagem C criada por Bjarne Stroustrup em 1980. Uma série de novos recursos poderosos que aumentaram drasticamente a produtividade do programador combinados com uma certa natureza de baixo nível herdada da linguagem C, resultando na criação de programas complexos e confiáveis ​​que exigem um alto nível de treinamento profissional dos desenvolvedores.

Java(Java, Java). Esta linguagem foi criada pela 5ip no início dos anos 90 baseada em C++. Ele foi projetado para simplificar o desenvolvimento de aplicativos baseados em C++, eliminando todos os recursos de baixo nível dele. Mas a principal característica desta linguagem é a compilação não em código de máquina, mas em bytecode independente de plataforma (cada comando ocupa um byte). Esse bytecode pode ser executado por meio de um interpretador - a JVM (Java Virtual Machine), cujas versões são criadas hoje para qualquer plataforma. Graças à disponibilidade de muitas máquinas Java, os programas Java podem ser portáveis ​​não apenas no nível do texto fonte, mas também no nível do bytecode binário, de modo que a linguagem Java hoje ocupa o segundo lugar em popularidade no mundo, depois do BASIC.

Atenção especial no desenvolvimento desta linguagem é dada a duas áreas: suporte para todos os tipos de dispositivos móveis e microcomputadores integrados em eletrodomésticos (tecnologia Jini) e a criação de módulos de software independentes de plataforma capazes de rodar em servidores em redes globais e locais. com diversos sistemas operacionais (tecnologia Java Beans). Até o momento, a principal desvantagem desta linguagem é o seu baixo desempenho, já que Java é uma linguagem interpretada.

COM#(Mar Afiado). No final dos anos 90, a linguagem C# foi desenvolvida na Microsoft sob a liderança de Anders Heilsberg. Ele incorpora as melhores ideias de C e C++, bem como as vantagens do Java. É verdade que o C#, como outras tecnologias da Microsoft, está focado na plataforma Windows. Porém, formalmente não difere de outras linguagens universais, e a corporação planeja até padronizá-la. A linguagem C# foi projetada para desenvolvimento rápido. NET e sua implementação no Microsoft Visual Studio. NET contém muitos recursos que vinculam o C# à arquitetura interna do Windows e à plataforma .NET.

Linguagens de programação de banco de dados

Este grupo de linguagens difere das linguagens algorítmicas principalmente nos problemas que resolvem. Um banco de dados é um arquivo (ou grupo de arquivos) que é um conjunto ordenado de registros que possuem uma estrutura uniforme e são organizados de acordo com um único modelo (geralmente em formato tabular). O banco de dados pode consistir em várias tabelas. É conveniente armazenar em bancos de dados várias informações de livros de referência, arquivos, diários contábeis, etc.

Ao trabalhar com bancos de dados, geralmente você precisa realizar as seguintes operações:

§ criar/modificar propriedades/excluir tabelas no banco de dados;

§ busca, seleção, triagem de informações de acordo com as solicitações do usuário;

§ adição de novos registros;

§ modificação de registros existentes;

§ exclusão de registros existentes.

As primeiras bases de dados surgiram há muito tempo, assim que houve a necessidade de processar grandes quantidades de informações e selecionar grupos de registros com base em determinadas características. Para tanto, foi criada a linguagem de consulta estruturada SQL (Structured Query Language). É baseado em uma poderosa teoria matemática e permite o processamento eficiente de bancos de dados, manipulando grupos de registros em vez de registros individuais.

DBMS (Database Management Systems) foram desenvolvidos para gerenciar grandes bancos de dados e processá-los de forma eficiente. Quase todo SGBD, além de suportar a linguagem SQL, também possui uma linguagem própria e exclusiva, focada nas funcionalidades deste SGBD e não portável para outros sistemas. Hoje existem três fabricantes líderes de SGBD no mundo: Microsoft (SQL Server), IBM (DB2) e Office. Seus produtos visam suportar o trabalho simultâneo de milhares de usuários na rede, e os bancos de dados podem ser armazenados de forma distribuída em diversos servidores. Cada um desses SGBDs implementa seu próprio dialeto SQL, focado nas características de um determinado servidor, portanto, programas SQL preparados para diferentes SGBDs geralmente são incompatíveis entre si.

Com o advento dos computadores pessoais, foram criados os chamados SGBDs de desktop. O ancestral das modernas linguagens de programação de banco de dados para PC é considerado o DBMS dBase II, cuja linguagem foi interpretada. Em seguida, foram criados compiladores para ele e surgiram os SGBDs FoxPro e Clipper, suportando dialetos dessa linguagem. Hoje, o DBMS de desktop mais comum é o Microsoft Access.

Linguagens de programação para Internet

Com o desenvolvimento ativo da rede global, foram criadas muitas implementações de linguagens de programação populares adaptadas especificamente para a Internet. Todos eles diferem em seus traços característicos: as linguagens são interpretadas, os intérpretes para elas são distribuídos gratuitamente e os próprios programas estão em código-fonte. Essas linguagens são chamadas de linguagens de script.

HTML. Uma linguagem bem conhecida para preparação de documentos. É muito simples e contém comandos básicos para formatar texto, adicionar imagens, definir fontes e cores, organizar links e tabelas. Todas as páginas da Web são escritas em HTML ou utilizam suas extensões.

Registroeu. Na década de 80, Larry Wall desenvolveu a linguagem Perl. Ele foi projetado como um meio de processar com eficiência grandes arquivos de texto, gerar relatórios de texto e gerenciar tarefas. Perl é significativamente mais poderoso que as linguagens C. Inclui muitas funções usadas com frequência para trabalhar com strings, arrays, todos os tipos de ferramentas de conversão de dados, gerenciamento de processos, trabalho com informações do sistema, etc.

RNR. Rasmus Lerdorf, que usava ativamente scripts Perl, decidiu em 1995 melhorar essa linguagem simplificando-a e adicionando ferramentas integradas para acessar bancos de dados. O resultado foi o desenvolvimento do Personal Content Page/Forms Interpreter (PHP/FI). Em alguns anos, programas baseados nele foram usados ​​em 50 mil sites. Em 1997, foi significativamente melhorado por Andy Gutman e Ziv Surasky, e sob o nome PHP 3.0, a linguagem rapidamente ganhou popularidade entre os criadores de sites dinâmicos em todo o mundo.

Tcl/ Tk. No final dos anos 80, John Austirout criou a popular linguagem de script Tcl e a biblioteca Tk. Com o Tcl, ele tentou concretizar a visão de uma linguagem de script ideal. A linguagem Tcl está focada na automação de processos rotineiros e consiste em comandos poderosos projetados para trabalhar com objetos abstratos não digitados. É independente do tipo de sistema e ao mesmo tempo permite criar programas com interface gráfica.

VRML. Em 1994, a linguagem VRML foi criada para organizar interfaces tridimensionais virtuais na Internet. Ele permite que você descreva em forma de texto várias cenas tridimensionais, iluminação e sombras, texturas (revestimentos de objetos), crie seus próprios mundos, viaje por eles, “voe” de todos os lados, gire em qualquer direção, dimensione, ajuste iluminação, etc

XML. Em agosto de 1996, o consórcio WWW, responsável pelos padrões de tecnologia da Internet, começou a preparar uma linguagem universal de marcação de estrutura de documentos baseada na tecnologia SGML criada na IBM há muito tempo. A nova linguagem foi chamada XML. Hoje ele serve de base para diversas aplicações de sistemas, redes e aplicativos, permitindo que diversos aspectos da estrutura interna de documentos organizados hierarquicamente sejam apresentados em formato de texto transparente para usuários e programas. Num futuro próximo, poderá tornar-se um substituto para o HTML.

Linguagens de modelagem

Ao criar programas e formar estruturas de banco de dados, muitas vezes são usados ​​​​métodos formais para representá-los - notações formais, com as quais você pode representar visualmente (representar com o mouse) tabelas de banco de dados, campos, objetos de programa e os relacionamentos entre eles em um sistema que possui um editor especializado e gerador de códigos-fonte de programas baseados no modelo criado. Esses sistemas são chamados de sistemas CASE. Eles usam ativamente notações IDEF e, recentemente, a linguagem de modelagem gráfica UML tornou-se cada vez mais popular.

Outras linguagens de programação

P.L./ EU(PL/I). Em meados dos anos 60, a IBM decidiu tirar o melhor das linguagens Fortran, Cobol e Algol. Como resultado, em 1964, nasceu uma nova linguagem de programação compilada, chamada Programming Language One. Esta linguagem implementou muitas soluções únicas, cuja utilidade só poderá ser avaliada 33 anos depois, na era dos grandes sistemas de software. Em termos de capacidades, PL/I é muito mais poderoso do que muitas outras linguagens (C, Pascal). Por exemplo, PL/I tem uma capacidade única de especificar a precisão dos cálculos - mesmo C++ e Java não a possuem. Esta linguagem continua a ser suportada pela IBM hoje.

Conversa fiada(Smoltalk). O trabalho nesta linguagem começou em 1970 no laboratório de pesquisa da XEROX Corporation e terminou 10 anos depois, concretizado na versão final do intérprete SMALLTALK-80. Esta linguagem é original porque sua sintaxe é muito compacta e se baseia unicamente no conceito de objeto. Não há operadores ou dados nesta linguagem. Tudo o que está incluído no Smalltalk são objetos, e os próprios objetos se comunicam exclusivamente por meio de mensagens (por exemplo, o aparecimento da expressão 1 + 1 faz com que a mensagem “+”, ou seja, “adicionar”, seja enviada para objeto I, com parâmetro 1, que é considerado não um número constante, mas também um objeto). Não existem outras estruturas de controle na linguagem, com exceção do ramo “operador” (na verdade, uma função pertencente a um objeto padrão), embora possam ser modeladas de forma muito simples. Hoje, o VisualAge for Smalltalk está sendo desenvolvido ativamente pela IBM.

LISP(Lisp). Uma linguagem de programação interpretada criada em 1960 por John McCarthy. Está focado em uma estrutura de dados em forma de lista e permite organizar o processamento eficiente de grandes volumes de informações textuais.

Prólogo(Prólogo). Criado no início dos anos 70 por Alan Colmeroe. Um programa nesta linguagem, que se baseia no modelo matemático da teoria do cálculo de predicados, é construído a partir de uma sequência de fatos e regras, e então é formulada uma afirmação que o Prolog tentará provar usando as regras introduzidas. Uma pessoa apenas descreve a estrutura do problema, e o próprio “mecanismo” interno do Prolog busca uma solução usando métodos de busca e comparação.

Ada(Ada). Nomeado em homenagem a Lady Augusta Ada Byron, filha do poeta inglês Byron e de sua parente distante Annabella Milbanke. Em 1980, centenas de especialistas do Departamento de Defesa dos EUA selecionaram esta linguagem específica entre 17 opções, desenvolvidas por uma pequena equipe liderada por Jean Ishbia. Satisfez todos os requisitos do Pentágono na altura e, até à data, dezenas de milhares de milhões de dólares foram investidos no seu desenvolvimento. A estrutura da linguagem em si é semelhante à de Pascal. Dispõe de meios para limitar estritamente o acesso a diferentes níveis de especificações e o poder das estruturas de controlo é levado ao limite.

ADIANTE(Forte). Resultado da tentativa de Charles Moore na década de 70 de criar uma linguagem com poderosas ferramentas de programação que pudesse ser implementada de forma eficiente em computadores com pequena quantidade de memória, e o compilador pudesse produzir código muito rápido e compacto, ou seja, servisse como substituto para montador. Porém, as dificuldades de perceber o texto do programa escrito de forma incomum dificultaram muito a localização de erros e, com o advento do C, a linguagem Forth foi esquecida.

Conclusão

Os programas de computador são criados por programadores – pessoas treinadas no processo de escrevê-los (programação). Sabemos que um programa é uma sequência ordenada logicamente de comandos necessários para controlar um computador (realizar operações específicas), portanto a programação se resume a criar uma sequência de comandos necessários para resolver um problema específico.

Bibliografia

1. Simonovich S.V. Curso básico de ciência da computação 2ª edição “Peter” M., São Petersburgo, Rostov-on-Don-2006

2. A.A. Stepanov Informatics 4ª edição “Peter” M., São Petersburgo, Rostov-on-Don, Kiev-2005

3. B.V. Sobol, A. B. Galin Livro didático de ciência da computação Rostov-on-Don, “Phoenix” 2005

4. Eu.I. Sergeeva, A. R. Informática Muzalevskaya, M. Forum-Infa-Moscou, 2006

5. E.L. Jukova, E.G. Burda Informática, M. 2007, Nauka-Press

Postado em Allbest.ru

Documentos semelhantes

    Conceitos de programação estruturada e algoritmo de resolução de problemas. Uma breve história do desenvolvimento de linguagens de programação, desde linguagens de máquina até linguagens assembly e linguagens de alto nível. Programação processual em C#. Métodos e programas de modelagem.

    tutorial, adicionado em 26/10/2010

    A essência e funções das linguagens de programação, sua evolução e avaliação da popularidade de vários tipos. Características de programas de computador desenvolvidos em linguagem compilada, interpretada ou mista. Classes básicas e hierarquia de linguagens de programação.

    apresentação, adicionada em 23/01/2013

    A evolução das linguagens de programação desde o baixo nível até os tempos modernos. Linguagens de programação de segunda geração - assembler. Linguagens imperativas, funcionais, lógicas e orientadas a objetos. Independência da máquina. Paradigmas de programação.

    apresentação, adicionada em 14/10/2013

    Classificação de linguagens de programação. Usando construções de loop e executando processos iterativos. Estruturas algorítmicas de loops nas linguagens C, C++, Java, C#. Recursos de linguagens de programação modernas de alto nível e sua aplicação.

    trabalho do curso, adicionado em 13/11/2009

    Características e propriedades das linguagens de programação. Estudo da evolução das linguagens de programação orientadas a objetos. Construção de um mapa evolutivo dos mecanismos de OOP. Desenvolvimento de um modelo conceitual de funcionamento da interface do usuário.

    trabalho do curso, adicionado em 17/11/2014

    Revisão de informações gerais e níveis de linguagens de programação. Familiarização com a história do desenvolvimento e uso de linguagens de programação. Revisão das vantagens e desvantagens de linguagens como Assembly, Pascal, C, C++, Fortran, Cobol, BASIC, SQL, HTML, Java.

    trabalho do curso, adicionado em 04/11/2014

    Conceitos básicos de linguagens de programação, mecanismos de digitação de dados. Descrição das linguagens de programação e métodos de tradução. Máquinas e conversores finitos. Métodos gerais de análise. Métodos formais para descrever a tradução de idiomas.

    curso de palestras, adicionado em 04/12/2013

    Fundamentos de sistematização de linguagens de simulação, modelagem de sistemas e linguagens de programação. Características do uso de linguagens algorítmicas, abordagens para o seu desenvolvimento. Análise das características e eficácia das linguagens de simulação.

    trabalho do curso, adicionado em 15/03/2012

    Avaliação do atual estágio de desenvolvimento das tecnologias informáticas. História do desenvolvimento, classificação, informações e níveis das linguagens de programação. Revisão das linguagens de programação modernas: C, suas variedades, Pascal, Fortran, BASIC - a tendência de seu desenvolvimento.

    trabalho do curso, adicionado em 22/12/2010

    Descrição das linguagens de programação modernas (Pascal, Assembly, C++, BASIC, Logo, Fort, Prolog, Refal e Lex). Conceito, finalidade e componentes de sistemas de programação (sistemas de programação orientados à máquina e independentes de máquina).

Programação orientada a objetos

A programação orientada a objetos é uma tecnologia de programação na qual um programa é visto como um conjunto de objetos discretos, que por sua vez contêm conjuntos de estruturas de dados e procedimentos que interagem com outros objetos.

Pascal, Visual Basic, Java

Do ponto de vista dos princípios de programação, as linguagens de programação podem ser divididas em 3 grupos: processuais, funcionais e lógicas

A base de todas as linguagens de programação são as linguagens procedurais, pois a base do funcionamento de um computador (processador central) no nível mais baixo é a capacidade de executar apenas comandos primitivos que indicam claramente o que o processador deve fazer. Outros tipos de linguagens podem ser consideradas superestruturas de linguagens de programação processuais. Estas linguagens (funcionais e lógicas) contêm e implementam determinados modelos matemáticos que permitem uma programação mais eficiente de determinados tipos específicos de problemas. Mas tradutores (compiladores), bibliotecas e outras ferramentas dessas linguagens de programação ainda são implementadas utilizando linguagens de programação processuais.

Linguagens de programação processual

O programa consiste em uma sequência de comandos imperativos (especificando explicitamente quais transformações realizar nos dados). Os dados são armazenados na forma de variáveis.

Linguagens de programação lógica

Linguagens de programação desse tipo são baseadas em lógica formal e álgebra booleana. O programa não contém algoritmos explícitos. São especificadas uma descrição das condições do problema e relações lógicas, segundo as quais o sistema de programação constrói uma árvore de inferência e encontra soluções para o problema.

Linguagens de programação funcionais

A programação funcional é baseada no uso de listas e funções. As variáveis ​​podem estar completamente ausentes.

Um exemplo de linguagem processual é a linguagem de programação Pascal. A linguagem Prolog é uma linguagem de programação lógica e a linguagem Lisp é uma linguagem de programação funcional.

Programas em linguagens de programação lógicas e funcionais apresentam desempenho relativamente baixo devido à complexidade de implementação.

Linguagens de baixo nível (código de máquina e assembler) são linguagens de programação processuais de acordo com seus princípios de funcionamento. Mas são linguagens de nível tão baixo que o termo “procedural” nem mesmo se aplica a elas. Em vez disso, é melhor chamá-las de linguagens de programação imperativas.

A maioria das linguagens de programação processuais modernas está se desenvolvendo na direção da programação orientada a objetos.



Programação orientada a objetos

Variáveis ​​e funções são agrupadas em objetos e classes. Graças a isso, consegue-se um maior nível de estruturação e abstração do programa. Alguns objetos (classes) podem ser gerados a partir de outros objetos (classes). Em linguagens orientadas a objetos, ocorrem conceitos como herança, polimorfismo e ligação tardia.

A linguagem de programação Java ocupa um lugar especial. Isto se deve a duas de suas excelentes propriedades. Em primeiro lugar, a implementação desta linguagem não está vinculada a uma arquitetura específica de um dispositivo computacional (computador, celular, etc.) e a um sistema operacional específico. Um programa Java é traduzido em código intermediário que pode ser executado em qualquer computador que execute uma máquina virtual Java. Para portar um programa Java para um novo tipo de computador, não é necessário reescrever o tradutor da linguagem Java e outras ferramentas de desenvolvimento. Além disso, não há necessidade de ter o código-fonte dos programas Java e recompilá-los. Basta reescrever uma máquina virtual Java para uma nova arquitetura de computador e executar nela aplicações Java em código intermediário, o mesmo para qualquer arquitetura de computador.

Em segundo lugar, na linguagem Java você pode desenvolver não apenas programas padrão, mas também tipos especiais de aplicativos, os chamados miniaplicativos e servlets, que são naturalmente incorporados em aplicativos da Internet (páginas HTML e servidores Web). Isso dá ao Java um alto grau de autonomia e o torna a linguagem de programação do futuro. Java é uma linguagem de programação processual orientada a objetos.

As linguagens de programação paralela são diferenciadas separadamente das linguagens de programação processuais. Essas linguagens são projetadas para criar programas que possam explorar mais plenamente o potencial dos computadores multiprocessadores. Um programa em linguagem de programação paralela descreve vários processos que são executados independentemente uns dos outros em seu próprio processador e trocam dados no momento certo. Um exemplo de linguagem de programação de baixo nível para transputadores (um tipo especial de computador paralelo) é a linguagem de programação Occam. Um exemplo de linguagem de programação de alto nível que suporta paralelismo é a linguagem de programação Modula-2. Aparentemente, as linguagens de programação paralela estão se tornando coisa do passado e suas funções para paralelizar programas são implementadas no nível do processador (processadores multi-core) ou essas funções são assumidas pelos sistemas operacionais.

Linguagens de programação declarativas de script (marcadas)

Recentemente, linguagens marcadas para descrever diversas estruturas de dados, principalmente relacionadas à transmissão de informações via Internet, tornaram-se difundidas. Uma dessas linguagens é XML - uma linguagem marcada para descrever estruturas de árvore com atributos, usada na construção de vários tipos de documentos. O XML está substituindo gradualmente o HTML e os arquivos MS Word e PDF são construídos com base nele. Para transformar arquivos XML, por exemplo, para reformatá-los de acordo com um novo modelo, a linguagem de marcação XSLT foi novamente desenvolvida. A estrutura do arquivo XSL (arquivo de transformação XSLT) está em total conformidade com a especificação XML. Basicamente, XSLT é uma linguagem de programação funcional.

Pascal, como a maioria das linguagens de programação, fornece ferramentas que permitem projetar um algoritmo auxiliar como uma sub-rotina. Isto é necessário quando um subalgoritmo é repetido várias vezes em um programa ou é possível utilizar alguns fragmentos de algoritmos previamente desenvolvidos. Além disso, sub-rotinas são usadas para dividir programas grandes em partes significativas separadas, de acordo com o princípio modular da programação.

Para usar um subalgoritmo como sub-rotina, você precisa atribuir um nome a ele e descrever o algoritmo de acordo com as regras da linguagem Pascal. Futuramente, se necessário, chame-o no programa, chame a sub-rotina mencionando no lugar certo o nome do subalgoritmo correspondente com uma lista de dados de entrada e saída. Tal referência leva à execução dos operadores incluídos na sub-rotina que trabalham com os dados especificados. Depois de executar uma sub-rotina, o trabalho continua com o comando que segue imediatamente a chamada da sub-rotina.

Existem dois tipos de sub-rotinas em Pascal - procedimentos E funções.

Procedimentos e funções são colocados na seção de descrição do programa. Existe um mecanismo para troca de informações entre procedimentos e funções e outros blocos de programa entrada E parâmetros de saída. Os parâmetros de entrada são os valores passados ​​​​do bloco de chamada para a sub-rotina (dados de entrada da sub-rotina) e os parâmetros de saída são aqueles passados ​​​​da sub-rotina para o bloco de chamada (os resultados da sub-rotina).

A mesma sub-rotina pode ser chamada repetidamente, realizando as mesmas ações com diferentes conjuntos de dados de entrada. Os parâmetros utilizados ao escrever o texto de uma sub-rotina na seção de descrição são chamados formal, e aqueles que são usados ​​ao chamá-lo são real.

O formato para descrever o procedimento é:

Procedimento nome do procedimento (parâmetros formais); seção de descrição do procedimento começar parte executável do procedimento fim;

Formato de descrição da função:

Função nome da função (parâmetros formais):tipo de resultado; seção de descrições de funções começar parte executável da função fim;

Você pode declarar suas próprias variáveis ​​em funções. Essas variáveis ​​são chamadas; local, ou seja, só podem ser utilizados na função em que são declarados.

Quando a função é encerrada, eles são destruídos.

Se você declarar uma variável fora de qualquer função (tais variáveis ​​são chamadas global), então ele pode ser usado em todas as funções sem declaração.

As estruturas de dados definem a classificação dos dados e os relacionamentos entre eles. As estruturas podem ser simples (elementares) ou complexas (compostas). Distinguem-se as seguintes estruturas: constante, variável, array, registro e tabela. Uma constante e uma variável podem ser consideradas dados elementares, elementos únicos e indivisíveis de sistemas de organização de dados mais complexos.

Constante- é um número, texto ou valor lógico que não muda durante a implementação do algoritmo, resolvendo o problema no computador.

Variávelé uma unidade de organização de dados à qual podem ser atribuídos diferentes significados durante o processamento da informação. Uma variável tem um nome - um identificador e um tipo: numérico, simbólico (literal, string), lógico. As variáveis ​​podem ser acompanhadas de palavras indicando seu tipo.

Variedade - este é um conjunto de elementos do mesmo tipo unidos por um nome (identificador de array). Os principais parâmetros dos arrays incluem seu tipo (numérico, simbólico, lógico), dimensão (unidimensional, bidimensional, etc.) e tamanho (o número de elementos do array em cada dimensão).

Recursão- esta é uma organização do algoritmo em que o procedimento se refere a si mesmo. O procedimento em si é chamado recursivo.

Classificação e características do software

A operação do computador é controlada por um programa. Todos os programas de computador armazenados em sua memória externa formam Programas(POR).

Programas
software de sistema software aplicativo
SO Serviços de utilidade pública Sistemas de programação Propósito geral Programas especializados Programas profissionais
carregado na RAM e organiza a execução de outros programas, interage com o computador programa do sistema - otimiza a memória do disco, protege contra vírus, etc. projetado para criar novos programas texto tabular, gráfico, musical, gerenciamento de banco de dados sistemas especialistas, hipertexto, multimídia AIMS - sistema automatizado de gerenciamento de informação, CAD - sistema de design auxiliado por computador, Sistemas de treinamento, Pesquisa de geoinformação
Windows, UNIX, Linux, Hummingbird, etc. BÁSICO, Pascal, Delphi, Bloco de notas, Word, Excel, Paint, Sound Forge, Access “1C-Enterprise”, “Compass” - para desenho,

Linguagem de programaçãoé um sistema de notação usado para descrever com precisão programas ou algoritmos de computador. Linguagens de programação são linguagens artificiais. Eles diferem das línguas naturais pelo número limitado de “palavras” e regras muito rígidas para escrever comandos (operadores). Portanto, quando utilizados para os fins a que se destinam, não permitem a livre interpretação de expressões características da linguagem natural.

Básico. Foi desenvolvido em 1963 pelos professores do Dartmouth College, Thomas Kurtz e John Kemeny. A linguagem era destinada ao ensino de programação e se difundiu na forma de diversos dialetos, principalmente como linguagem para computadores domésticos. Os oito seguintes foram usados ​​​​ao projetar a linguagem: princípios: 1.Ser fácil de usar para iniciantes 2.Ser uma linguagem de programação de uso geral 3.Fornecer extensibilidade acessível a programadores experientes 4.Ser interativo 5.Fornecer mensagens de erro claras 6.Trabalhar rapidamente em programas pequenos 7.Não exigir conhecimento de hardware 8 .Proteja o usuário do sistema operacional. A linguagem foi baseada parcialmente em Fortran II e parcialmente em ALGOL-60, com acréscimos que a tornaram adequada para compartilhamento de tempo e, posteriormente, processamento de texto e aritmética matricial. A sintaxe da linguagem lembra Fortran, e muitos elementos são claramente emprestados dela. A linguagem foi projetada para o aprendizado, portanto suas estruturas são as mais simples possíveis. Como em outras linguagens de programação, as palavras-chave são retiradas do idioma inglês. Existem dois tipos principais de dados: strings e números. A declaração de variáveis ​​não requer uma seção especial (ao contrário, por exemplo, de Pascal). Declarar uma variável é a primeira vez que ela é usada.

Dó sustenido - Dó#(pronuncia-se si sharp) é uma linguagem de programação orientada a objetos. Desenvolvido em 1998-2001 por um grupo de engenheiros liderado por Anders Hejlsberg na Microsoft como uma linguagem de desenvolvimento de aplicativos para o Microsoft.NET Framework. C# pertence a uma família de linguagens com sintaxe semelhante à C, cuja sintaxe é mais próxima de C++ e Java. A linguagem é tipada estaticamente, suporta polimorfismo, sobrecarga de operadores (incluindo operadores de conversão explícitos e implícitos), delegados, atributos, eventos, propriedades, tipos e métodos genéricos, iteradores, funções anônimas com suporte para fechamentos, LINQ, exceções, comentários no formato XML. Tendo adotado muito de seus antecessores – as linguagens C++, Java, Delphi. C#, com base na prática de seu uso, exclui alguns modelos que se mostraram problemáticos no desenvolvimento de sistemas de software, por exemplo, C# não suporta herança de múltiplas classes (ao contrário de C++).


Linguagem de programação C++ - uma linguagem de programação compilada, digitada estaticamente e de uso geral. Ele suporta diferentes paradigmas de programação, mas, em comparação com seu antecessor - a linguagem C - a maior atenção é dada ao suporte à programação generalizada e orientada a objetos. O nome "C++" vem de C, em que o operador unário ++ denota o incremento de uma variável. Na década de 1990, a linguagem se tornou uma das linguagens de programação de uso geral mais utilizadas. Ao criar o C++, eles procuraram manter a compatibilidade com a linguagem C. A maioria dos programas C funcionará corretamente com um compilador C++. C++ possui uma sintaxe baseada na sintaxe C.

Vantagens C++ é uma linguagem extremamente poderosa que contém ferramentas para criar programas eficazes para praticamente qualquer finalidade, desde utilitários e drivers de baixo nível até sistemas de software complexos para uma ampla variedade de finalidades. Em particular: Alta compatibilidade com a linguagem C, permitindo o uso de todo o código C existente (o código C pode ser compilado com modificação mínima por um compilador C++; bibliotecas escritas em C geralmente podem ser chamadas diretamente de C++ sem quaisquer custos adicionais, inclusive no nível de funções de retorno de chamada, permitindo que bibliotecas escritas em C chamem código escrito em C++). Vários estilos e tecnologias de programação são suportados, incluindo programação diretiva tradicional, OOP, programação genérica, metaprogramação (modelos, macros). É possível trabalhar em baixo nível com memória, endereços e portas. A capacidade de criar contêineres e algoritmos generalizados para diferentes tipos de dados, sua especialização e cálculos na fase de compilação usando modelos. Plataforma cruzada. Os compiladores estão disponíveis para um grande número de plataformas e os programas são desenvolvidos em C++ para uma ampla variedade de plataformas e sistemas. Eficiência. A linguagem foi projetada para dar ao programador o máximo controle sobre todos os aspectos da estrutura do programa e da ordem de execução. Imperfeições Em parte, as deficiências do C++ são herdadas de sua linguagem ancestral - C - e são causadas pelo requisito inicialmente especificado para a maior compatibilidade possível com C. Estas são desvantagens como: Sintaxe que causa erros: O pré-processador, herdado de C, é muito primitivo. Fraco suporte à modularidade (na verdade, no C clássico não há modularidade no nível da linguagem; seu fornecimento é delegado ao vinculador). Conectar a interface de um módulo externo por meio da inserção de um arquivo de cabeçalho no pré-processador (#include) retarda seriamente a compilação ao conectar um grande número de módulos (porque o arquivo resultante, que é processado pelo compilador, acaba sendo muito grande).

Pascal. A linguagem Pascal, que surgiu em 1972, recebeu o nome do grande matemático francês do século XVII, o inventor da primeira máquina aritmética do mundo, Blaise Pascal. Esta linguagem foi criada pelo cientista da computação suíço Niklaus Wirth como uma linguagem para o ensino de métodos de programação. Pascal é uma linguagem de programação de uso geral. As características da linguagem são a digitação estrita e a presença de ferramentas de programação estrutural (procedimental). Pascal foi uma das primeiras dessas linguagens. Segundo N. Wirth, a linguagem deve contribuir para a disciplina de programação, portanto, junto com a digitação estrita, em Pascal possíveis ambiguidades sintáticas são minimizadas, e a sintaxe em si é intuitiva mesmo quando você se familiariza com a linguagem pela primeira vez. A linguagem Pascal ensina não apenas como escrever um programa corretamente, mas também como desenvolver corretamente um método para resolver um problema e escolher formas de representar e organizar os dados utilizados no problema. Desde 1983, Pascal foi introduzido em cursos de ciência da computação em escolas secundárias dos EUA.

Linguagem de programação Delphi (Delphi)- ambiente de desenvolvimento, utiliza a linguagem de programação Delphi (a partir da versão 7, a linguagem do ambiente se chama Delphi, anteriormente Object Pascal), desenvolvida pela Borland e inicialmente implementada em seu pacote Borland Delphi, do qual recebeu seu nome atual em 2003 . Object Pascal é essencialmente um sucessor da linguagem Pascal com extensões orientadas a objetos. Delphi fornece design visual de interface de usuário e possui uma linguagem desenvolvida orientada a objetos Objeto Pascal(mais tarde renomeado como Delphi) e ferramentas de acesso a banco de dados que são únicas em sua simplicidade e poder. A linguagem Delphi superou significativamente a linguagem Basic e até mesmo a linguagem C++ em alguns aspectos, mas ao mesmo tempo revelou-se muito confiável e fácil de aprender (especialmente em comparação com a linguagem C++). Como resultado, o ambiente Delphi permitiu aos programadores criar facilmente seus próprios componentes e construir programas profissionais a partir deles.

Java- uma linguagem de programação orientada a objetos desenvolvida pela Sun Microsystems - 23 de maio de 1995. Os programas Java são traduzidos em bytecode, que é executado pela Java Virtual Machine (JVM), um programa que processa o bytecode e passa instruções ao hardware como um intérprete. A vantagem deste método de execução de programas é a total independência do bytecode do sistema operacional e hardware, o que permite executar aplicações Java em qualquer dispositivo para o qual exista uma máquina virtual correspondente. Outra característica importante da tecnologia Java é seu sistema de segurança flexível devido ao fato de a execução do programa ser totalmente controlada pela máquina virtual. Qualquer operação que exceda as permissões estabelecidas do programa (por exemplo, uma tentativa de acesso não autorizado a dados ou conexão a outro computador) causa uma interrupção imediata. Muitas vezes para deficiências O conceito de máquina virtual significa que a execução de bytecode por uma máquina virtual pode reduzir o desempenho de programas e algoritmos implementados na linguagem Java. Recentemente, foram feitas uma série de melhorias que aumentaram ligeiramente a velocidade de execução de programas Java: o uso de tecnologia para traduzir bytecode em código de máquina diretamente enquanto o programa está em execução (tecnologia JIT) com a capacidade de salvar versões de classe em código de máquina , uso generalizado de código orientado a plataforma (código nativo) em bibliotecas padrão, hardware que fornece processamento acelerado de bytecode (por exemplo, tecnologia Jazelle, suportada por alguns processadores ARM).

Principais características: gerenciamento automático de memória; recursos avançados de tratamento de exceções; rico conjunto de ferramentas de filtragem de E/S; um conjunto de coleções padrão, como array, lista, pilha, etc.; disponibilidade de ferramentas simples para criação de aplicativos de rede (inclusive usando o protocolo RMI); ferramentas de linguagem integradas para criar aplicativos multithread; execução paralela de programas.

Assim, em nossa época existem muitas línguas, e cada uma delas tem características próprias.

Com o advento das máquinas de segunda geração, surgiu a necessidade de criar linguagens totalmente focadas nas especificidades das tarefas e que não dependessem de uma máquina específica. O símbolo da segunda geração de computadores tornou-se orientado para o problema linguagens de programação. O seu desenvolvimento foi cada vez mais determinado pelas especificidades das tarefas e não pelas características das máquinas. Essas línguas foram chamadas linguagens algorítmicas. Uma das primeiras e mais bem-sucedidas linguagens desse tipo foi Fortran(Para mulae Tran slação) , desenvolvido pela IBM em 1954. A linguagem Fortran não apenas sobreviveu até hoje, mas também é bastante difundida. Entre as razões para tal longevidade, pode-se notar a estrutura simples tanto do próprio Fortran quanto dos tradutores a ele destinados. Fortran foi a base para a linguagem de diálogo BASIC ( B iniciante A propósito S simbólico EU instrução C ode) - uma linguagem que agora é difundida em várias modificações. Logo após a criação do Fortran (1957), surgiu a linguagem ALGOL (Algo Rítmico eu língua), criado com base em ampla cooperação internacional. Em 1960, foi publicado um relatório oficial sobre uma linguagem algorítmica chamada ALGOL-60. Algol foi criado após o desenvolvimento e aplicação prática do Fortran e, portanto, caracteriza-se tanto pela introdução de novas construções quanto pela generalização dos conceitos encontrados no Fortran. Embora tanto Fortran quanto Algol merecessem o nome universal línguas, nenhuma delas, é claro, permitiu descrever todos os problemas que surgem sem exceção. Portanto, mais ou menos na mesma época, surgiram linguagens algorítmicas com orientação para problemas (Cobol, Snobol, etc.), atendendo às necessidades de áreas específicas da ciência e tecnologia. Das linguagens para processamento de informações simbólicas (transformação de fórmulas, solução analítica de equações, análise e síntese de textos, etc.), a linguagem é muito popular Lisp(Li st P processamento), criado em 1960 no Instituto de Tecnologia de Massachusetts. Nessa linguagem, todas as informações processadas, inclusive o próprio programa, são organizadas nas chamadas listas - sequências de elementos. A terceira geração de computadores colocou na agenda o desenvolvimento de uma nova abordagem para a criação de uma linguagem verdadeiramente universal. Uma das tentativas desse tipo foi a criação pela IBM da linguagem algorítmica PL/1 ( P programação eu Inglês/1 - uma linguagem de programação). Foi baseado nas linguagens Fortran e Cobol, vários recursos visuais e conceitos foram extraídos de Algol e outras linguagens. Em 1971, Niklaus Wirth propôs uma linguagem algorítmica Pascal(Pascal). A linguagem Pascal é a sucessora do Algol-60, possui construções semelhantes às existentes em PL/1 e Algol-68, mas Pascal é mais conciso. A linguagem Pascal contribuiu para a introdução da moderna tecnologia de programação baseada na construção gradual de um programa composto por procedimentos pequenos e claramente definidos, ou seja, ideias são implementadas de forma consistente estrutural programação. Outra característica significativa de Pascal é o conceito de estrutura de dados como um dos conceitos fundamentais que, junto com o conceito de algoritmo, fundamentam a programação. Baseada na linguagem Pascal, a linguagem foi criada no final dos anos 70 Ada, tendo um escopo de aplicação muito amplo, embora tenha sido criada como a linguagem de programação oficial das forças armadas dos EUA. A linguagem leva o nome da primeira programadora mulher, Ada Lovelace. É uma linguagem altamente estruturada e particularmente adequada para o desenvolvimento de sistemas em tempo real. No entanto, a linguagem Ada é muito complicada, detalhada e não fornece liberdade suficiente ao programador. Em termos de complexidade sintática, ainda não foi superado por nenhuma outra linguagem. Em contraste com as linguagens de alto nível listadas, a linguagem de programação proposta por Denis Ritchie no início dos anos 80 Si(o nome contém uma letra latina C) pretendia ser uma linguagem de nível relativamente baixo. Mas isso não significa que a linguagem não seja poderosa o suficiente. A linguagem algorítmica C reflete plenamente as capacidades dos computadores modernos, permitindo escrever programas muito eficazes sem recorrer a linguagens assembly , principalmente através de projetos de fluxo de controle simples e sequenciais. A linguagem ganhou popularidade graças a soluções engenhosas que tornaram a escrita de um programa C muito compacta. Sem impor quaisquer restrições especiais ao programador, oferece a oportunidade para uma variedade de truques, o que também agrada a muitos. A linguagem Pascal na versão original do autor não continha ferramentas de compilação separadas - módulos, vários tipos numéricos, strings de comprimento variável e muito do que foi adicionado a implementações conhecidas. Como resultado, Niklaus Wirth propôs a linguagem Módulo-2, que deveria substituir Pascal, eliminando sua principal limitação - a falta de modularidade. Sabe-se que o Modula-2 tem sido e está sendo utilizado em projetos onde a confiabilidade desempenha um papel crítico. As ferramentas de controle intermódulo do Modula-2 são visivelmente mais avançadas do que capacidades semelhantes de Pascal e C. Compilador Turbo Pascal, desenvolvido por Anders Hejlsberg, foi lançado comercialmente pela Borland em 1983. Esta versão já continha extensões de linguagem, ainda que pequenas. Nas versões subsequentes, surgiram cada vez mais extensões: gráficos integrados, módulos, programação orientada a objetos (OOP), etc. A partir da versão 7.0, a linguagem passou a se chamar Borland Pascal. Pascal agora é popular como uma poderosa versão orientada a objetos Objeto Pascal. Object Pascal contém muitas extensões sintáticas em comparação com o Pascal padrão. Como resultado, o simples e elegante Pascal transformou-se em uma linguagem que se aproxima da complexidade da linguagem do Inferno. A linguagem orientada a objetos C++ foi proposta por Bjarne Stroustrup com o nome original “C com classes”. O nome reflete o fato de que C++ é um superconjunto da linguagem C. A linguagem C++, de acordo com algumas estimativas, é duas vezes mais complexa que C. É agora, sem exagero, a linguagem número um do mundo para programadores profissionais, pois adotou as vantagens e a popularidade de C e adicionou ferramentas poderosas para escrever programas orientados a objetos. Suas implementações são suportadas em todas as plataformas de hardware e software, ao contrário do Pascal, que é amplamente distribuído apenas na plataforma IBM PC. Linguagem Oberon foi desenvolvido por N. Wirth em 1987. É uma versão sintaticamente simplificada significativamente do Modula-2, que adicionou registros expansíveis - o principal mecanismo OOP. A linguagem é extremamente simples, mas ao mesmo tempo mantém sua universalidade e não é funcionalmente inferior a outras linguagens. Em 1992, N. Wirth aceitou as extensões Oberon propostas por Hanspeter Mössenböck. Análogos de métodos virtuais em outras linguagens foram introduzidos na linguagem. A nova versão é chamada Oberon-2. Surpreendentemente, o Oberon-2 revelou-se mais simples que o Oberon, do qual é uma extensão. A linguagem orientada a objetos mais jovem e discutida atualmente Java(na pronúncia em inglês - Java, o russo ainda não foi estabelecido) foi proposto por James Gosling (Sun Microsystems). A principal característica do Java é a portabilidade de aplicações entre plataformas, devido à qual a linguagem é amplamente utilizada para escrever aplicações para a Internet. Java é uma linguagem muito sintaticamente complexa. Sua descrição oficial – um documento de 700 páginas – está repleta de definições detalhadas e complicadas. Apesar dessa complexidade, existem apenas duas coisas significativas em Java que, por exemplo, Oberon não faz: multithreading integrado e tratamento de exceções. Em geral, são conhecidas atualmente de 2 a 3 mil linguagens de programação, das quais cerca de 100 são objetos e orientadas a objetos. Critérios para escolha da linguagem de programação: A escolha da linguagem deverá ser feita com base nos requisitos do produto a ser desenvolvido, levando em consideração os seguintes fatores: poder da linguagem (capacidades da linguagem); portabilidade linguística; complexidade da linguagem; nível de suporte à linguagem instrumental existente. A complexidade de uma linguagem nem sempre está diretamente relacionada ao seu poder. A linha de linguagens Virt (Pascal - Modula - Oberon) é caracterizada por uma diminuição na complexidade à medida que o poder aumenta. Vários pesquisadores acreditam que existem cinco tipos principais de estilos de programação e, consequentemente, linguagens de programação:

Atualmente, as linguagens mais atrativas para programadores são baseadas nas chamadas modelo de objeto, que possui quatro elementos principais: abstração; encapsulamento; modularidade; hierarquia. Abstração- descarga abstrações(abstração), que são entendidas como as características essenciais de um objeto que o distinguem de todos os outros objetos e definem claramente seus limites conceituais para o observador. Encapsulamento(encapsulamento) - separação dos elementos de abstração que formam sua estrutura e comportamento. Modularidade(modularidade) - divisão do sistema em módulos(módulo), que são entendidos como unidades de código que servem como blocos da estrutura física do sistema. Hierarquia(hierarquia) - subordinação ou ordenação de abstrações. Duas hierarquias típicas em um sistema complexo são a hierarquia de herança “geral/particular”, geralmente inerente a tipos (classes) e a hierarquia de agregação “todo/parte”, geralmente inerente a elementos (objetos). A hierarquia também é inerente aos módulos e outras partes do sistema. Esses recursos estão mais claramente presentes em linguagens que implementam os conceitos programação orientada a objetos. Este último refere-se a uma metodologia de implementação na qual um programa é organizado como uma coleção de objetos colaboradores, cada um dos quais é uma instância de uma classe, e as classes formam uma hierarquia de herança. No entanto, as classes são geralmente estáticas, enquanto os objetos são muito dinâmicos, o que é incentivado pela ligação dinâmica e pelo polimorfismo. OOP é caracterizado pelos conceitos de herança e polimorfismo. Herança(herança) - relacionamento entre classes em que uma classe utiliza a estrutura ou comportamento de outra (herança única) ou de outras (herança múltipla). A herança introduz uma hierarquia público/privada. Polimorfismo(polimorfismo) - uma disposição da teoria dos tipos, segundo a qual nomes (por exemplo, variáveis) podem denotar objetos de classes diferentes (mas tendo um pai comum). Conseqüentemente, qualquer objeto (método), denotado por um nome polimórfico, pode reagir à sua maneira a um determinado conjunto geral de operações (argumentos).



gastroguru 2017