Que tipos de programadores existem. Tipos de linguagens de programação

Programação procedimental (imperativa)é um reflexo da arquitetura dos computadores tradicionais. Um programa em uma linguagem de programação procedural consiste em uma sequência de operadores (instruções) que especificam o procedimento para resolver um problema. O principal é o operador de atribuição, que serve para alterar o conteúdo das áreas de memória. O conceito de memória como uma reserva de valores, cujo conteúdo pode ser atualizado por declarações de programa, é fundamental na programação imperativa. Uma linguagem de programação procedural permite ao programador definir cada etapa do processo de resolução de um problema. A peculiaridade de tais linguagens de programação é que as tarefas são divididas em etapas e resolvidas passo a passo. A programação imperativa é mais adequada para pequenas subtarefas em que a velocidade de execução em computadores modernos é muito importante.

As linguagens de programação procedural incluem: Ada, Basic (versões do Quick Basic ao Visual Basic), C, COBOL, Fortran, Modula- 2, Pascal, PL / 1, Rapier, REXX.

Programação estruturada- metodologia de desenvolvimento de software, que se baseia na apresentação do programa na forma de uma estrutura hierárquica de blocos construída a partir de três tipos de estruturas básicas: execução sequencial, ramificação e loop.

Programação Orientada a Objetosé uma metodologia de programação baseada na representação de um programa como uma coleção de objetos, cada um dos quais é uma implementação de uma determinada classe (tipo de dados de um tipo especial), e as classes formam uma hierarquia baseada nos princípios de herança.

Objetos significam a união de dados e procedimentos que os processam em um único todo. Os objetos podem trocar mensagens entre si. Quando o objeto recebe uma mensagem, o manipulador correspondente é iniciado, caso contrário, chamado método... O objeto possui um container associativo que permite receber, por mensagem, seu método de processamento. Além disso, o objeto possui um objeto ancestral. Se nenhum método for encontrado para tratar a mensagem, a mensagem será encaminhada ao objeto pai. Essa estrutura como um todo (tabela de manipuladores + ancestrais), por razões de eficiência, é alocada em um objeto separado chamado aula deste objeto. O próprio objeto terá uma referência ao objeto que representa sua classe. Os objetos interagem exclusivamente através do envio de mensagens uns aos outros.

É importante destacar as seguintes três propriedades principais dos objetos.

Encapsulamento (proteção de dados)- um mecanismo que integra dados e métodos que manipulam esses dados e protege ambos contra interferências externas.


Herançaé o processo pelo qual um objeto pode herdar as propriedades de outro objeto e adicionar características exclusivas a eles. A relação filho-ancestral nas classes é chamada de herança.

Polimorfismoé uma propriedade que torna possível substituir um objeto por outro objeto com uma estrutura de classe semelhante. Portanto, se em qualquer cenário de interação de objeto você substituir um objeto arbitrário por outro que pode processar as mesmas mensagens, o cenário também será implementado.

Programação declarativa... A ênfase na programação declarativa é sobre o que fazer, não como fazer (em linguagens imperativas). O principal aqui é a formulação exata do problema, e a escolha e aplicação do algoritmo necessário para sua solução é o problema do sistema em execução, mas não do programador. Por exemplo, as páginas da Web em HTML são declarativas no sentido de que descrevem o que a página deve conter, não como a página é exibida na tela. Essa abordagem difere das linguagens de programação imperativas, que exigem que o programador especifique um algoritmo para execução.

Existem dois ramos da programação declarativa: funcional, baseada no conceito matemático de uma função que não muda seu ambiente, ao contrário das funções em linguagens procedimentais que permitem efeitos colaterais, e lógica, em que os programas são expressos como fórmulas de lógica matemática e um computador para resolver um problema. tenta deduzir consequências lógicas deles.

Programação lógica baseado na lógica matemática. Mas a linguagem de programação lógica mais famosa é Prolog. O programa PROLOGUE contém dois componentes: fatos e regras. Fatos são dados com os quais o programa opera, e a totalidade dos fatos compõe o banco de dados PROLOGUE, que é, na verdade, um banco de dados relacional. A principal operação realizada nos dados é uma operação de correspondência, também chamada de operação de unificação ou reconciliação.

Assim como em outras linguagens declarativas, ao trabalhar com ela, o programador descreve a situação (regras e fatos) e formula o objetivo (consulta), permitindo que o interpretador PROLOGUE encontre uma solução para o problema. O interpretador PROLOGUE é entendido como um mecanismo para a resolução de um problema utilizando a linguagem PROLOGUE. Um programa PROLOGUE é um conjunto de fatos e (possivelmente) regras. Se um programa contém apenas fatos, ele é chamado de banco de dados. Se também contiver regras, o termo base de conhecimento será freqüentemente usado.

Ao contrário dos programas escritos em linguagens procedurais, que prescrevem a sequência de etapas que um computador deve executar para resolver um problema, em PROLOGUE o programador descreve fatos, regras, relações entre eles e também solicitações sobre o problema. A aplicação mais típica do PROLOGUE são os sistemas especialistas.

Perguntas de autoteste

1. O que é um programa? O que significa um artista?

2. O que é código de máquina?

3. O que é um tradutor? Liste os tipos de tradutores.

4. Como funciona o intérprete? Quais são suas vantagens?

5. Qual é a vantagem dos compiladores?

6. Quais componentes estão incluídos no sistema de programação integrado?

7. O que se entende por estrutura de dados, qual é a classificação de uma estrutura de dados?

8. O que significa matrizes de dados e quais operações podem ser realizadas com elas?

9. Quais são os algoritmos para ordenar matrizes?

10. Qual é a finalidade das sub-rotinas?

11. Para que serve uma biblioteca de rotinas?

12. Que tipos de programação existem?

Literatura

1. Stavrovsky A.B., Karnaukh T.A. Primeiros passos para a programação. Guia de autoaprendizagem. - M.: Williams, 2006 .-- 400 p.

2. Okulov S. Fundamentos de programação Editor: Binom. Laboratório de Conhecimento, 2008 .-- 383 p.

3. Kantsedal S.А. Fundamentos de Algoritmização e Programação. - M.: Forum, 2008 .-- 351 p.

4.httn // www myfreesoft ru / default-windows-nroprams html - programas padrão do Windows

5.httn // khni-iin mink kharkiv edu / lihrary / datastr / hook / nrt01 html # lb11 - modelos e estruturas de dados

6.httn: //www.intuit.ru/denartment/se/nhmsu/11/3.html#sect5 - modelos e estruturas de dados

7.http: //inf.1sentemher.ru/2007/15/00.htm - enciclopédia de um professor de ciência da computação

8.http: //www.delnhi.int.ru/articles/119/ - sub-rotinas.

9.httn // inroc ru / narallel-nroPramminP / lection-5 / - classificação de heap.

Linguagem de programação- um sistema de sinalização formal projetado para descrever algoritmos de uma forma que seja conveniente para o artista (por exemplo, um computador). Uma linguagem de programação define um conjunto de regras lexicais, sintáticas e semânticas usadas na composição de um programa de computador. Ele permite que o programador determine exatamente a quais eventos o computador reagirá, como os dados serão armazenados e transmitidos e também quais ações devem ser executadas nesses eventos em várias circunstâncias.

Desde a criação das primeiras máquinas programáveis, a humanidade já inventou mais de 2,5 mil linguagens de programação. A cada ano, seu número é reabastecido por novos. Algumas linguagens são conhecidas apenas por um pequeno número de seus próprios desenvolvedores, outras tornam-se conhecidas por milhões de pessoas. Os programadores profissionais às vezes usam mais de uma dúzia de linguagens de programação diferentes em seu trabalho.

Os criadores da linguagem interpretam o conceito de maneira diferente linguagem de programação... Entre os lugares comuns reconhecidos pela maioria dos desenvolvedores estão os seguintes:

· Função: uma linguagem de programação é destinada a escrever programas de computador que são usados ​​para transmitir instruções a um computador para executar um processo de computação específico e organizar o controle de dispositivos individuais.

· Uma tarefa: uma linguagem de programação difere das linguagens naturais por ser projetada para transmitir comandos e dados de uma pessoa para um computador, enquanto as linguagens naturais são usadas apenas para as pessoas se comunicarem. Em princípio, é possível generalizar a definição de “linguagens de programação” - é uma forma de transmitir comandos, ordens, um guia claro de ação; enquanto as línguas humanas também servem para trocar informações.

· Execução: uma linguagem de programação pode usar construções especiais para definir e manipular estruturas de dados e controlar o processo de computação.

3. Estágios de resolução do problema em um computador.

A aplicação mais eficaz do VT foi encontrada em cálculos trabalhosos em pesquisas científicas e cálculos de engenharia. Ao resolver um problema em um computador, a função principal ainda pertence a uma pessoa. A máquina somente realiza suas tarefas de acordo com o programa desenvolvido. o papel do homem e da máquina é fácil de entender se o processo de resolução de um problema for dividido nas etapas listadas abaixo.

Formulação do problema. Esta etapa consiste na formulação substantiva (física) do problema e na determinação das soluções finais.

Construindo um modelo matemático. O modelo deve descrever corretamente (adequadamente) as leis básicas do processo físico. A construção ou seleção de um modelo matemático a partir dos existentes requer uma compreensão profunda do problema e conhecimento das seções relevantes da matemática.

Desenvolvimento da Copa do Mundo. Uma vez que um computador pode realizar apenas as operações mais simples, ele "não entende" a definição do problema, mesmo em uma formulação matemática. Para resolvê-lo, deve-se encontrar um método numérico que permita reduzir o problema a algum algoritmo computacional. Em cada caso específico, é necessário escolher uma solução adequada entre os padrões já desenvolvidos.

Desenvolvimento de algoritmos. O processo de resolução de um problema (processo computacional) é escrito na forma de uma sequência de operações aritméticas e lógicas elementares que conduzem ao resultado final e é denominado algoritmo de resolução do problema.

Programação. O algoritmo para resolver o problema é escrito em uma linguagem compreensível pela máquina na forma de uma sequência de operações precisamente definida - um programa. O processo geralmente é realizado em alguma linguagem intermediária, e sua tradução é realizada pela própria máquina e seu sistema.

Depurando o programa. O programa compilado contém todos os tipos de erros, imprecisões e erros de impressão. A depuração inclui controle de programa, erros de diagnóstico (pesquisa e determinação de conteúdo) e sua eliminação. O programa é testado resolvendo problemas de controle (teste) para obter confiança na confiabilidade dos resultados.

Cálculos. Nesta fase, os dados iniciais para os cálculos são preparados e o cálculo é realizado de acordo com o programa depurado. ao mesmo tempo, para reduzir o trabalho manual para processar os resultados, podem ser amplamente utilizadas formas convenientes de emissão de resultados na forma de texto e informações gráficas em uma forma compreensível para uma pessoa.

Análise dos resultados. Os resultados dos cálculos são analisados ​​cuidadosamente, e é elaborada a documentação científica e técnica.

4. Para que servem as linguagens de programação?

O processo de trabalho de um computador consiste na execução de um programa, ou seja, um conjunto de comandos bem definidos em uma ordem bem definida. A forma de máquina da instrução, consistindo de zeros e uns, indica que tipo de ação o processador central deve executar. Isso significa que, para informar ao computador uma sequência de ações que ele deve executar, você precisa especificar uma sequência de códigos binários dos comandos correspondentes. Os programas de código de máquina consistem em milhares de instruções. Escrever esses programas é difícil e tedioso. O programador deve lembrar a combinação de zeros e uns do código binário de cada programa, bem como os códigos binários dos endereços de dados usados ​​em sua execução. É muito mais fácil escrever um programa em alguma linguagem mais próxima da linguagem humana natural e confiar ao computador o trabalho de traduzir esse programa em códigos de máquina. Foi assim que as linguagens foram projetadas especificamente para escrever programas - linguagens de programação.

Existem muitas linguagens de programação diferentes disponíveis. Na verdade, qualquer um deles pode ser usado para resolver a maioria dos problemas. Programadores experientes sabem qual linguagem é melhor usar para resolver cada problema específico, pois cada uma das linguagens tem suas próprias capacidades, orientação para certos tipos de problemas, sua própria forma de descrever conceitos e objetos usados ​​na resolução de problemas.

Todas as muitas linguagens de programação podem ser divididas em dois grupos: linguagens de baixo nível e linguagens de alto nível.

As linguagens de baixo nível incluem as linguagens assembly (do inglês toassemble - to collect, assemble). A linguagem assembly usa notação simbólica para comandos que são fáceis de entender e lembrados rapidamente. Em vez de uma sequência de códigos binários de comandos, suas designações simbólicas são escritas e, em vez dos endereços de dados binários usados ​​ao executar o comando, os nomes simbólicos desses dados selecionados pelo programador. A linguagem assembly é às vezes chamada de mnemocode ou autocode.

A maioria dos programadores usa linguagens de alto nível para escrever seus programas. Como uma linguagem humana comum, essa linguagem tem seu próprio alfabeto - um conjunto de símbolos usados ​​na linguagem. As chamadas palavras-chave da linguagem são compostas por esses símbolos. Cada uma das palavras-chave desempenha sua função, da mesma forma que na língua a que estamos acostumados, as palavras compostas pelas letras do alfabeto de uma determinada língua podem desempenhar as funções de diferentes classes gramaticais. Palavras-chave são ligadas entre si em frases de acordo com certas regras sintáticas da linguagem. Cada frase define uma determinada sequência de ações que devem ser realizadas pelo computador.

A linguagem de alto nível desempenha o papel de intermediário entre uma pessoa e um computador, permitindo que uma pessoa se comunique com um computador de uma maneira mais familiar para uma pessoa. Freqüentemente, essa linguagem ajuda você a escolher o método certo para resolver um problema.

Antes de escrever um programa em linguagem de alto nível, o programador deve redigir algoritmo resolver o problema, ou seja, um plano de ação passo a passo que deve ser executado para resolver esse problema. Portanto, as linguagens que requerem a compilação preliminar de um algoritmo são frequentemente chamadas linguagens algorítmicas.

5. Quais linguagens de programação existem

1.1 Fortran

As linguagens de programação começaram a aparecer já em meados dos anos 50. Uma das primeiras línguas deste tipo foi a linguagem FORTRAN (FORTRAN de FORmulaTRANslator - o tradutor de fórmulas), desenvolvida em 1957. Fortran é usado para descrever o algoritmo para resolver problemas científicos e técnicos usando um computador digital. Tal como os primeiros computadores, esta linguagem foi concebida principalmente para a realização de cálculos naturais-científicos e matemáticos. De forma aprimorada, essa linguagem sobreviveu até nossos dias. Entre as linguagens modernas de alto nível, é uma das mais utilizadas na pesquisa científica. As variantes mais comuns são Fortran-II, Fortran-IV, EASICFortran e suas generalizações.

1.2 ALGOL

Depois do Fortran em 1958-1960, a linguagem Algol apareceu (Algol-58, Algol-60) (Inglês ALGOL de ALGOrithmicLanguage - linguagem algorítmica). Algol foi melhorado em 1964-1968 - Algol-68. ALGOL foi desenvolvido por um comitê que incluiu cientistas europeus e americanos. Ele pertence a linguagens de alto nível e permite que você traduza facilmente fórmulas algébricas em comandos de programa. Algol era popular na Europa, incluindo a URSS, enquanto o Fortran comparável era comum nos Estados Unidos e Canadá. Algol teve uma influência notável em todas as linguagens de programação desenvolvidas posteriormente e, em particular, na linguagem Pascal. Essa linguagem, como o Fortran, pretendia resolver problemas científicos e técnicos. Além disso, essa linguagem foi usada como meio de ensinar o básico da programação - a arte da programação.

Normalmente, o conceito de Algol significa linguagem ALGOL-60, enquanto ALGOL-68 considerada uma língua independente. Mesmo quando a linguagem Algol quase deixou de ser usada para programação, ela ainda permaneceu como a linguagem oficial para publicar algoritmos.

1.3 Cobol

Em 1959 - 1960, a linguagem Cobol (Inglês COBOL da COmmom Business Oriented Language) foi desenvolvida. É uma linguagem de programação de terceira geração projetada principalmente para o desenvolvimento de aplicativos de negócios. Além disso, o Kobol se destinava à solução de problemas econômicos, processando dados para bancos, seguradoras e outras instituições desse tipo. Grace Hopper ( vovó Kobola).

Cobol costuma ser criticado por sua verbosidade e morosidade, já que um dos objetivos dos criadores da língua era trazer as construções o mais próximo possível da língua inglesa. (Até agora, Cobol é considerada a linguagem de programação na qual a maioria das linhas de código foi escrita). Ao mesmo tempo, o Cobol contava com excelentes ferramentas para trabalhar com estruturas de dados e arquivos para a época, o que garantia uma vida longa aos aplicativos de negócios, pelo menos nos Estados Unidos.

1.4 Lisp

Quase simultaneamente com Cobol (1959 - 1960), a linguagem Lisp (LISP de LIStProcessing) foi criada no Massachusetts Institute of Technology. O Lisp baseia-se na representação de um programa por um sistema de listas lineares de caracteres, que, aliás, constituem a principal estrutura de dados da linguagem. Lisp é considerada a segunda linguagem de programação de alto nível mais antiga, depois do Fortran. Essa linguagem é amplamente usada para processar informações simbólicas e é usada para criar software que imita a atividade do cérebro humano.

Qualquer programa Lisp consiste na sequência expressões(formulários). O resultado do programa é avaliar essas expressões. Todas as expressões são escritas como listas- uma das estruturas básicas do Lisp, para que possam ser facilmente criadas usando a própria linguagem. Isso permite que você crie programas que modificam outros programas ou macros, permitindo que você expanda significativamente os recursos da linguagem.

O significado principal do programa Lisp "vida" no espaço simbólico: movimento, criatividade, memorização, criação de novos mundos, etc. Lisp como uma metáfora cerebral, um símbolo, uma metáfora de sinal: “Como é que a análise biológica dos sinais pelo cérebro, enquanto factor externo - a influência física e química, que irrita o corpo, se transforma num sinal biologicamente significativo, muitas vezes vital, determinando todo o comportamento de uma pessoa ou animal; e como há uma divisão dos diferentes sinais em positivos, negativos e indiferentes, indiferentes. O sinal já é um conceito integrativo. É um sinal de identificação de um grupo, estímulos complexos , interligados por uma história comum e relações causais. Neste complexo, o sistema de estímulos, o próprio estímulo do sinal é também um elemento constituinte, e em outras circunstâncias seu papel pode pertencer a outro estímulo do complexo. O sinal concentra todos a experiência passada de um animal ou de uma pessoa.

1.5 BASIC

Em meados dos anos 60 (1963), a linguagem BASIC (BASIC de Beginner's Allpurpose Instruction Code) foi criada no Dartmouth College (EUA). Com o tempo, à medida que outros dialetos começaram a aparecer, esse dialeto "original" ficou conhecido como Dartmouth BASIC. A linguagem foi baseada parcialmente em Fortran II e parcialmente em Algol-60, com adições tornando-o conveniente para compartilhamento de tempo e, posteriormente, processamento de texto e aritmética de matriz. O BASIC foi originalmente implementado no mainframe GE-265 com suporte para vários terminais. Ao contrário da crença popular, na época de seu início, era uma linguagem compilada.

O BASIC foi projetado para que os alunos possam escrever programas usando terminais de compartilhamento de tempo. Ele foi criado como uma solução para a complexidade das linguagens mais antigas. Ele foi projetado para usuários mais "simples", não tanto interessados ​​na velocidade dos programas, mas simplesmente na capacidade de usar um computador para resolver seus problemas. Devido à simplicidade da linguagem BASIC, muitos programadores novatos começam seu caminho na programação com ela.

1.6 Forte

No final dos anos 60 - início dos 70, surgiu a língua Fort (Inglês QUARTO - o quarto). Esta linguagem começou a ser usada em problemas de controle de vários sistemas após seu autor Charles Moore escrever um programa desenhado para controlar o radiotelescópio do Observatório do Arizona.

Uma série de propriedades, nomeadamente interatividade, flexibilidade e facilidade de desenvolvimento, tornam Forth uma linguagem muito atraente e eficaz para pesquisa aplicada e desenvolvimento de ferramentas. Os usos óbvios para esta linguagem são sistemas de controle embutidos. Também encontra aplicação na programação de computadores que executam vários sistemas operacionais.

1.7 Pascal

A linguagem Pascal, que surgiu em 1972, foi nomeada em homenagem ao grande matemático francês do século 17, 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 ensinar métodos de programação. Pascal é uma linguagem de programação de propósito geral.

As peculiaridades da linguagem são a tipificação estrita e a disponibilidade de ferramentas de programação estruturais (procedimentais). Pascal foi uma das primeiras linguagens. Segundo N. Wirth, a linguagem deve contribuir para a disciplina de programação, portanto, junto com a tipagem forte, em Pascal as possíveis ambigüidades sintáticas são minimizadas, e a sintaxe em si é intuitivamente clara desde o primeiro contato com a linguagem.

A linguagem Pascal ensina não só como escrever um programa corretamente, mas também como desenvolver corretamente um método para resolver um problema, escolher formas de apresentar e organizar os dados usados ​​em um problema. Desde 1983, a língua Pascal foi introduzida no currículo de ciência da computação das escolas secundárias dos Estados Unidos.

1.8 Inferno

Em 1983, a linguagem Ada foi criada sob os auspícios do Departamento de Defesa dos Estados Unidos. A linguagem é notável porque muitos erros podem ser detectados na fase de compilação. Além disso, ele oferece suporte a muitos aspectos da programação que geralmente são deixados à mercê do sistema operacional (simultaneidade, tratamento de exceções). Em 1995, o padrão de linguagem Ada 95 foi adotado, que se baseia na versão anterior, adicionando orientação a objetos e corrigindo algumas imprecisões. Ambas as línguas não são amplamente utilizadas fora dos militares e outros projetos de grande escala (aviação, transporte ferroviário). O principal motivo é a dificuldade de aprender a língua e uma sintaxe bastante complicada.

Os predecessores imediatos de Ada são Pascal e seus derivados, incluindo Euclid, Lis, Mesa, Modula e Sue. Vários conceitos do ALGOL-68, Simula, CLU e Alphard foram usados.

A principal preocupação dos desenvolvedores Ada era:

· Confiabilidade e desempenho dos programas;

· Programação como atividade humana;

· Eficiência.

Tabela 1 mostra as principais características da linguagem Ada do ponto de vista da abordagem do objeto.

Tabela 1. Ada.

1.9 Si

Atualmente, C é uma linguagem popular entre os programadores (C é uma letra do alfabeto inglês). A linguagem C origina-se de duas linguagens - BCPL e B. Em 1967, Martin Richards desenvolveu a BCPL como uma linguagem para escrever software de sistema e compiladores. Em 1970, Ken Thompson usou o B para criar as primeiras versões do sistema operacional UNIX em um computador DEC PDP-7. Tanto em BCPL quanto em B, as variáveis ​​não eram separadas em tipos - cada valor de dados ocupava uma palavra na memória e a responsabilidade de distinguir, por exemplo, números inteiros e reais recaía inteiramente sobre os ombros do programador. A linguagem C foi desenvolvida ( baseado em B) por Dennis Ritchie da Bell Laboratories e foi implementado pela primeira vez em 1972 em um computador DEC PDP-11. C ganhou fama como a linguagem do sistema operacional UNIX. Quase todos os principais sistemas operacionais de hoje foram escritos em C ou C ++. Após duas décadas, C está disponível na maioria dos computadores. É independente do hardware. No final dos anos 70, C evoluiu para o que chamamos de "C tradicional". Em 1983, um único padrão para esse idioma foi estabelecido pelo Comitê Americano de Padrões Nacionais para Computadores e Processamento de Informações. Esta linguagem tem recursos ricos, permite que você escreva programas flexíveis que usam todos os recursos dos computadores pessoais modernos.

1.10 Prólogo

Outra linguagem considerada a linguagem do futuro foi criada no início dos anos 70 por um grupo de especialistas da Universidade de Marselha. Esta é a linguagem Prolog. Seu nome vem das palavras "PROGRAMAÇÃO NA LÍNGUA DA LÓGICA". Esta linguagem é baseada nas leis da lógica matemática. Como a linguagem Lisp, Prolog é usado principalmente em pesquisas no campo de simulação de software da atividade do cérebro humano. Ao contrário das linguagens descritas acima, esta linguagem não é algorítmica. Pertence ao chamado descritivo(do inglês descritivo - descritivo) - linguagens descritivas. Uma linguagem descritiva não requer que um programador desenvolva todos os estágios de uma tarefa. Em vez disso, de acordo com as regras dessa linguagem, o programador deve descrever o banco de dados correspondente ao problema a ser resolvido e o conjunto de questões a serem respondidas usando os dados desse banco de dados.

Nas últimas décadas, a programação surgiu e passou por um desenvolvimento significativo Orientado a Objeto uma abordagem. Este é um método de programação que imita a imagem do mundo real: as informações usadas para resolver um problema são representadas como um conjunto de objetos em interação. Cada um dos objetos tem suas próprias propriedades e comportamento. A interação dos objetos é realizada por meio da transmissão de mensagens: cada objeto pode receber mensagens de outros objetos, lembrar informações e processá-las de uma determinada maneira e, por sua vez, enviar mensagens. Assim como no mundo real, os objetos armazenam suas propriedades e comportamento juntos, herdando alguns deles de seus objetos pais.

A ideologia orientada a objetos é usada em todos os produtos de software modernos, incluindo sistemas operacionais.

A primeira linguagem orientada a objetos Simula -67 foi criado como uma ferramenta para simular o funcionamento de vários dispositivos e mecanismos. A maioria das linguagens de programação modernas são orientadas a objetos. Entre eles estão as últimas versões do idioma Turbo - Pascal , C ++, Ada e outros.

Os sistemas agora são amplamente usados programação visual Visual Básico , Visual C ++, Delphi e outros. Eles permitem que você crie pacotes de aplicativos complexos com uma interface de usuário simples e conveniente.

1.11 Java

Desde 1995, uma nova linguagem de programação orientada a objetos, Java, se espalhou, visando redes de computadores e, acima de tudo, a Internet. A sintaxe dessa linguagem é semelhante à sintaxe da linguagem C ++, mas essas linguagens têm pouco em comum. Java é uma linguagem interpretada: uma representação interna (bytecode) e um interpretador para esta representação são definidos para ela, que já estão implementados na maioria das plataformas. O interpretador simplifica a depuração de programas escritos na linguagem Java, garante sua portabilidade para novas plataformas e adaptabilidade para novos ambientes. Permite excluir a influência de programas escritos na linguagem Java em outros programas e arquivos disponíveis na nova plataforma, garantindo assim a segurança na execução desses programas. Essas propriedades da linguagem Java permitem que ela seja usada como a principal linguagem de programação para programas distribuídos em redes (em particular, na Internet).

1.12 Object Pascal

Object Pascal foi criado pela equipe da Apple Computer (alguns dos quais eram colaboradores do Smalltalk) com Niklaus Wirth, o criador da linguagem Pascal. Object Pascal existe desde 1986 e é a primeira linguagem de programação orientada a objetos a ser incluída no Macintosh Programmer's Workshop (MPW), um ambiente de desenvolvimento para computadores Macintosh da Apple.

Não existem métodos de classe, variáveis ​​de classe, herança múltipla e metaclasses nesta linguagem. Esses mecanismos são excluídos propositalmente para tornar a linguagem fácil de aprender para programadores de "objetos" novatos.

Tabela 2 mostra as características gerais do Object Pascal.

Tabela 2. Objeto Pascal.

Nos últimos anos, essa linguagem se tornou muito popular graças ao sistema Delphi da Borland.

1.13 Sistema de design orientado a objetos visuais Delphi.

O advento do Delphi não poderia passar despercebido entre vários usuários de computador. As avaliações de especialistas que exploram as possibilidades deste novo produto da Borland são geralmente tingidas de tons entusiasmados. A principal vantagem do Delphi é que as idéias de programação visual são implementadas aqui. O ambiente de programação visual transforma o processo de criação de um programa em uma construção agradável e fácil de entender de um aplicativo a partir de um grande conjunto de primitivas gráficas e estruturais.

O sistema Delphi permite que você resolva muitos problemas, em particular:

· Crie aplicativos completos para Windows para uma ampla variedade de finalidades: desde puramente computacional e lógico, até gráfico e multimídia.

· Crie rapidamente (mesmo para programadores novatos) uma interface em janela de aparência profissional para qualquer aplicativo.

· Crie sistemas poderosos para trabalhar com bancos de dados locais e remotos

· Crie sistemas de ajuda (arquivos .hlp) para seus aplicativos e muito mais. dr.

Delphi é um sistema de crescimento extremamente rápido. A primeira versão, Delphi 1.0, foi lançada em fevereiro de 1995 e, em seguida, novas versões eram lançadas anualmente.

Cada versão subsequente do Delphi complementou a anterior.A maioria das versões do Delphi estão disponíveis em várias versões: Standard - standard, Professional - professional, Client / Server - client / server, Enterprise - desenvolvimento de bases de dados de áreas temáticas. As variantes diferem principalmente em diferentes níveis de acesso aos sistemas de gerenciamento de banco de dados. As últimas opções são Cliente / Servidor e Empresa, que são as mais poderosas nesse sentido.

Delphi é uma combinação de várias tecnologias críticas:

Compilador de alto desempenho para código de máquina

Modelo de componente orientado a objetos

Construção visual (e, portanto, de alta velocidade) de aplicativos a partir de protótipos de software

Ferramentas escaláveis ​​para construir bancos de dados

Estrutura de telas em ambiente Delphi.

Depois de chamar o Delphi, várias janelas aparecem no Windows (Fig. 1):

Janela principal,

Janela de formulário,

Janela do inspetor de objetos,

Janela de árvore de objetos,

Janela de código do programa.


Figura 1. Estrutura de telas em ambiente Delphi.

Considere o menu gráfico do sistema Delphi localizado na parte superior da tela, composto por ícones, do lado esquerdo do menu gráfico há uma barra de ferramentas. As ferramentas executam alguns comandos do menu principal - esta duplicação é frequentemente praticada em ambientes de ferramentas.Este painel possui, em particular, um botão para salvar um projeto em disco, um botão para abrir um projeto, um botão para iniciar o programa para execução.

A próxima parte do menu gráfico é uma paleta de componentes, organizados na forma de conjuntos de ícones. A coleção de kits compõe a Biblioteca de Componentes Visuais (VCL). Existem várias categorias de componentes, cada uma associada a uma guia diferente. Usando a Paleta de componentes, iremos instanciar componentes (ou objetos) no formulário.

Para colocar um objeto no formulário, você precisa "clicar" no botão correspondente da paleta e, em seguida, clicar dentro da janela do formulário: um objeto será inserido no local especificado do formulário - uma instância de um componente de o tipo selecionado.

A janela Object Inspector é uma janela que exibe as propriedades de um formulário ou de um objeto colocado em um formulário. Em nosso caso, o componente atual é o formulário, então a janela de propriedades na figura mostra as propriedades do formulário.

A janela de propriedades tem duas guias - Propriedades e Eventos, com a ajuda das quais você pode obter linhas (campos) na janela para definir, respectivamente, as propriedades de um componente (ou seja, um objeto ou um formulário) e sua resposta a vários eventos. A propriedade define um atributo do componente, como o tamanho de um botão ou a fonte de um rótulo. Um evento significa, por exemplo, ações como clicar em um botão ou fechar uma janela.

A janela da árvore de objetos apareceu na versão 6 e se destina à exibição visual de links entre objetos individuais colocados no formulário ativo ou no módulo de dados ativo.

A janela de código do programa destina-se à criação e edição de texto do programa. Inicialmente, ele contém código-fonte mínimo.

Projetos Delphi. Um projeto Delphi consiste em formulários, módulos, configurações de parâmetros do projeto, recursos, etc. Todas essas informações estão localizadas em arquivos. Muitos desses arquivos são gerados automaticamente pelo Delphi quando você constrói seu aplicativo. Recursos como bitmaps, ícones e assim por diante são encontrados em arquivos que você obtém de outras fontes ou cria com as muitas ferramentas e editores de recursos à sua disposição. Além disso, o compilador também gera arquivos.

Os arquivos criados durante o processo de design são mostrados na tabela. 3

A parte principal da aplicação é o arquivo de projeto (.dpr), que contém o código Object Pascal que inicia o programa e inicializa outros módulos. Ele é criado e modificado pelo Delphi automaticamente durante o desenvolvimento da aplicação. O nome dado ao arquivo de projeto durante o processo de salvamento torna-se o nome do arquivo executável.

Arquivo de projeto (.dpr) Este arquivo de texto é usado para armazenar informações sobre formulários e módulos. Ele contém instruções para inicializar e iniciar programas para execução
Arquivo de módulo (.pas) Cada formulário que você cria possui um arquivo de texto do módulo correspondente que é usado para armazenar o código. Você pode criar módulos que não estão relacionados a formulários. Muitas das funções e procedimentos do Delphi são armazenados em módulos.
Arquivo de formulário (.dfm) Este é um arquivo binário ou de texto que o Delphi cria para armazenar informações sobre formulários. Cada arquivo de formulário tem um arquivo de módulo correspondente (.pas)
Arquivo de opções do projeto (.dfo) Este arquivo armazena as configurações dos parâmetros do projeto
Arquivo de recurso (.res) Este arquivo binário contém o ícone usado pelo projeto e outros recursos.
Arquivos de backup (. ~ Dpr ,. ~ Dfm ,. ~ Pas) Estes são, respectivamente, arquivos de backup para os arquivos de projeto, formulário e módulo. Se algo estiver irremediavelmente corrompido no projeto, você pode alterar as extensões desses arquivos de acordo e, assim, retornar à versão anterior não corrompida.
Arquivo de configuração de janela (.dsk) O arquivo armazena a configuração de todas as janelas do ambiente de desenvolvimento
Arquivo executável (.exe) Este é o arquivo executável do aplicativo. É um arquivo executável autônomo que não requer mais nada, a menos que use as bibliotecas contidas em DLLs, OCXs, etc.
Arquivo de objeto do módulo (.dcu) Este é um arquivo de módulo compilado (.pas) que está vinculado ao arquivo executável final.

Tabela 3. Arquivos criados durante o processo de design.


Atualmente, foi lançada a 7ª versão do sistema Delphi. Em tempo recorde, tornou-se um dos sistemas de programação mais populares do mundo. Muitos desenvolvedores em todo o mundo estão firmemente comprometidos em usar o Delphi como uma ferramenta para criar aplicativos cliente / servidor altamente eficientes.

Árvore de evolução da programação

Figura 1 Árvore de evolução da programação

6. Bibliografia:

1. I.T. Zaretskaya, B.G. Kolodyazhny, A.N. Gurzhiy, A.Yu. Sokolov. Grau de informática 10-11. - К.: "Fórum", 2001

1. Estrutura da tela em ambiente Delphi (http://textbook.keldysh.ru/distant/delphi/del_2.htm)

2. Patrikeev Yu. N. "Design orientado a objetos" (http://www.object.newmail.ru/oop1.html)

3. S. Nemnyugin, L. Perkolab "Studying TurboPascal" - SPb.: Peter, 2002.

2. H.M. Daytel. Como programar em S. - M.: "Binom", 2000

3. Página da Internet: http://ru.wikipedia.org/wiki/LISP

O livro consiste em duas seções: teórica e prática. A parte teórica do livro estabelece os fundamentos da informática moderna como uma disciplina científica e técnica complexa, incluindo o estudo da estrutura e propriedades gerais da informação e dos processos de informação, princípios gerais de construção de dispositivos de computação, considera a organização e funcionamento da informação e redes de computadores, segurança de computadores, apresenta os principais conceitos de algoritmos e programação, bancos de dados e DBMS. Para controlar os conhecimentos teóricos obtidos, são oferecidas questões para autoavaliação e testes. A parte prática aborda os algoritmos de ações básicas ao trabalhar com um processador de texto Microsoft Word, um editor de planilhas Microsoft Excel, um programa para criação de apresentações em Microsoft Power Point, programas de arquivamento e programas antivírus. Como consolidação do curso prático aprovado ao final de cada seção, propõe-se a realização de um trabalho independente.

Livro:

Seções nesta página:

8,2. Linguagens de programação

Tipos de programação

O progresso da tecnologia da computação determinou o processo de surgimento de uma variedade de novos sistemas de sinais para escrever algoritmos - linguagens de programação. O significado do surgimento de tal linguagem é um conjunto equipado de fórmulas computacionais para informações adicionais, o que transforma esse conjunto em um algoritmo.

Linguagens de programação são linguagens criadas artificialmente. Eles diferem dos naturais por um número limitado de "palavras" e regras muito estritas 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 de linguagem é sua semântica.

Linguagens de programação são linguagens formais de comunicação entre uma pessoa e um computador, projetadas para descrever um conjunto de instruções, cuja implementação fornece a solução correta para o problema requerido. Sua principal função é planejar as atividades de processamento de informações. Qualquer linguagem de programação é baseada em um sistema de conceitos, e com sua ajuda uma pessoa pode expressar seus pensamentos.

A conexão entre a linguagem em que pensamos / programamos e os problemas e soluções que podemos imaginar em nossa imaginação é muito próxima. Por esse motivo, limitar as propriedades de uma linguagem apenas com o objetivo de eliminar erros do programador é, na melhor das hipóteses, perigoso. Tal como acontece com as línguas naturais, há um enorme benefício em ser pelo menos bilíngue. A linguagem fornece ao programador um conjunto de ferramentas conceituais, caso não atendam à tarefa, são simplesmente ignoradas. Por exemplo, as severas limitações do conceito de ponteiro forçam o programador a usar vetores e toda a aritmética para implementar estruturas, ponteiros e outros semelhantes. Um bom design e um design livre de erros não podem ser garantidos puramente por meios de linguagem.

Pode parecer surpreendente, mas um determinado computador é capaz de executar programas escritos em sua própria linguagem de máquina. Existem quase tantas linguagens de máquina diferentes quanto computadores, mas todas são variedades da mesma ideia - operações simples são realizadas na velocidade da luz em números binários.

Linguagens de programação dependentes de máquina

Linguagens dependentes de máquina são linguagens cujos conjuntos de operadores e meios pictóricos dependem essencialmente das características do computador (linguagem interna, estrutura de memória, etc.). Essas linguagens são chamadas de linguagens de programação de baixo nível. Eles estão focados em um tipo específico de processador e levam em consideração suas peculiaridades. Os operadores dessa linguagem estão próximos do código de máquina e estão focados em instruções específicas do processador, ou seja, essa linguagem é dependente da máquina. A linguagem de baixo nível é Assembly. Com a sua ajuda, são criados programas muito eficazes e compactos, já que o desenvolvedor tem acesso a todas as capacidades do processador. Essas linguagens são usadas para escrever pequenos aplicativos de sistema, drivers de dispositivo, bibliotecas. Nos casos em que a quantidade de RAM e ROM é pequena (na região de vários kilobytes), não há alternativa ao montador. São essas linguagens de programação que permitem obter o código de programa mais curto e rápido.

Linguagens de programação independentes de máquina

Linguagens independentes de máquina são um meio de descrever algoritmos para resolver problemas e informações a serem processadas. Eles são convenientes para uso por uma ampla gama de usuários e não exigem que eles conheçam as especificidades da organização do funcionamento de um computador e de um sistema de computação.

Essas linguagens são chamadas de linguagens de programação de alto nível. Os programas escritos nessas linguagens são sequências de declarações estruturadas de acordo com as regras da linguagem (tarefas, segmentos, blocos, etc.). Os operadores de linguagem descrevem as ações que o sistema deve executar depois que o programa foi traduzido para a linguagem de máquina.

As sequências de comandos (procedimentos, sub-rotinas), freqüentemente usadas em programas de máquina, são representadas em linguagens de alto nível por instruções separadas. O programador teve a oportunidade não de descrever em detalhes o processo computacional no nível das instruções de máquina, mas de se concentrar nas principais características do algoritmo.

Linguagens de programação de alto nível são muito mais próximas e mais compreensíveis para os humanos. Eles não levam em consideração as peculiaridades de arquiteturas de computador específicas, ou seja, essas linguagens são independentes de máquina. Isso torna possível usar um programa uma vez escrito nessa linguagem em vários computadores.

É possível escrever programas diretamente em linguagem de máquina, embora isso seja difícil. No alvorecer da informatização (no início dos anos 1950), a linguagem de máquina era a única linguagem que um homem maior ainda não havia inventado naquela época. Para salvar os programadores da dura linguagem de programação de máquina, foram criadas linguagens de alto nível (ou seja, linguagens não-máquina), que se tornaram uma espécie de ponte de conexão entre o homem e a linguagem de máquina do computador. As linguagens de alto nível funcionam por meio de programas de tradução que injetam "código-fonte" (um híbrido de palavras em inglês e expressões matemáticas que uma máquina lê) e, por fim, forçam o computador a executar instruções apropriadas, fornecidas em linguagem de máquina.

Linguagens de programação de alto nível incluem o seguinte: Fortran, Cobol, Algol, Pascal, Basic, C, C ++, Java, HTML, Perl e outros.

Com a ajuda de uma linguagem de programação, não é criado um programa pronto, mas apenas seu texto descrevendo um algoritmo desenvolvido anteriormente. Para obter um programa funcional, você deve traduzir automaticamente esse texto em código de máquina e usá-lo separadamente do texto fonte ou executar imediatamente os comandos de linguagem especificados no texto do programa. Para isso, são usados ​​programas tradutores.

Existem dois tipos principais de tradutores (Figura 8.4): intérpretes, que examinam e validam o código-fonte em uma etapa, e compiladores, que fazem a varredura do código-fonte para produzir o texto de um programa em linguagem de máquina, que é então executado separadamente.


Figura 8.4. Tipos de tradutores

Ao usar compiladores, todo o código-fonte do programa é convertido em códigos de máquina, e são esses códigos que são gravados na memória do microprocessador. Ao usar o interpretador, o código-fonte do programa é escrito na memória do microprocessador e a tradução é realizada quando o próximo operador é lido. Naturalmente, a velocidade dos intérpretes é muito menor em comparação com os compiladores, pois quando um operador é usado em um loop, ele é traduzido várias vezes. No entanto, ao programar em uma linguagem de alto nível, a quantidade de código que precisa ser armazenada na memória interna pode ser significativamente menor do que a do código executável. Outra vantagem de usar intérpretes é a fácil portabilidade de programas de um processador para outro.

Uma vantagem frequentemente citada de uma implementação de intérprete é que ela permite o "modo direto". O modo imediato permite que você pergunte ao computador um problema e retorna a resposta para você assim que você pressiona a tecla ENTER. Além disso, os intérpretes têm atributos especiais que facilitam a depuração. Você pode, por exemplo, interromper o processamento de um programa interpretador, exibir o conteúdo de certas variáveis, folhear o programa e então continuar a execução. No entanto, as linguagens interpretadas têm desvantagens. É necessário, por exemplo, ter uma cópia do intérprete na memória o tempo todo, enquanto muitos dos recursos do intérprete e, portanto, seus recursos, podem não ser necessários para a execução de um programa específico. Ao executar as instruções do programa, o interpretador deve primeiro examinar cada instrução para ler seu conteúdo (o que essa pessoa está me pedindo para fazer?) E, em seguida, executar a operação solicitada. Operadores em loops são escaneados demais.

Um compilador é um tradutor de linguagem de máquina que lê o texto fonte. Ele o avalia de acordo com a construção sintática da linguagem e o traduz para a linguagem de máquina. Em outras palavras, o compilador não executa programas, ele os constrói. Os intérpretes não podem ser separados dos programas que executam; os compiladores fazem seu trabalho e saem de cena. Ao trabalhar com uma linguagem de compilação como Turbo BASIC, você precisará pensar sobre seus programas em termos de duas fases principais de sua vida: o período de compilação e o período de execução. A maioria dos programas será executada de quatro a dez vezes mais rápido do que seus equivalentes de intérprete. Se você trabalhar para melhorá-lo, poderá obter uma melhoria de desempenho de 100 vezes. O outro lado da moeda é que os programas que passam a maior parte do tempo mexendo em arquivos em discos ou esperando pela entrada não serão capazes de demonstrar nenhum aumento de velocidade impressionante.

O processo de criação de um programa é chamado de programação.

Existem vários tipos de programação.

Algorítmico ou modular

A ideia principal da programação algorítmica é dividir um programa em uma sequência de módulos, cada um dos quais executa uma ou mais ações. O único requisito para o módulo é que sua execução sempre comece com o primeiro comando e sempre termine com o mais recente (ou seja, é impossível chegar aos comandos do módulo de fora e transferir o controle do módulo para outros comandos, contornando o final).

O algoritmo na linguagem de programação selecionada é escrito usando comandos para descrever dados, calcular valores e controlar a sequência de execução do programa.

O texto do programa é uma sequência linear de atribuição, loop e instruções condicionais. Desta forma, você pode resolver problemas não muito complexos e compor programas contendo várias centenas de linhas de código. Depois disso, a compreensibilidade do texto fonte cai drasticamente devido ao fato de que a estrutura geral do algoritmo se perde atrás de operadores de linguagem específicos que executam ações elementares muito detalhadas. Inúmeras declarações condicionais e de loop aninhadas aparecem, a lógica torna-se completamente confusa, ao tentar corrigir uma declaração errônea, vários novos erros são introduzidos, relacionados às peculiaridades de funcionamento desta declaração, cujos resultados são frequentemente levados em consideração em vários lugares no programa.

Programação estruturada

Ao criar aplicações de médio porte (vários milhares de linhas de código-fonte), é usada programação estruturada, cuja ideia é que a estrutura do programa deve refletir a estrutura do problema a ser resolvido para que o algoritmo de solução seja claramente visível do texto de origem. Para fazer isso, você precisa ter os meios para criar um programa não apenas com a ajuda de três operadores simples, mas também com a ajuda de meios que reflitam com mais precisão a estrutura específica do algoritmo. Para tanto, foi introduzido na programação o conceito de sub-rotina - um conjunto de operadores que realizam a ação desejada e não dependem de outras partes do código-fonte. O programa é dividido em muitas pequenas sub-rotinas (levando até 50 instruções - um limite crítico para entender rapidamente o propósito da sub-rotina), cada uma das quais executa uma das ações fornecidas pela tarefa original. Combinando essas sub-rotinas, é possível formar o algoritmo final não a partir de operadores simples, mas a partir de blocos completos de código que têm uma certa carga semântica, e você pode se referir a esses blocos pelo nome. Acontece que as sub-rotinas são novos operadores ou operações da linguagem, definidas pelo programador.

A capacidade de usar sub-rotinas classifica a linguagem de programação como uma linguagem procedural.

Ter sub-rotinas permite projetar e desenvolver um aplicativo de cima para baixo - essa abordagem é chamada de design de cima para baixo. Primeiro, várias sub-rotinas são alocadas para resolver as tarefas mais globais (por exemplo, inicialização de dados, parte principal e conclusão), então cada um desses módulos é detalhado em um nível inferior, quebrando, por sua vez, em um pequeno número de outras sub-rotinas, e isso acontece até que toda a tarefa seja concluída.

Essa abordagem é conveniente porque permite que uma pessoa pense constantemente no nível do assunto, sem parar em operadores e variáveis ​​específicos. Além disso, torna-se possível para alguns não implementar imediatamente sub-rotinas, mas adiar temporariamente até que outras partes sejam concluídas. Por exemplo, se houver necessidade de calcular uma função matemática complexa, uma sub-rotina separada para tal cálculo é alocada, mas é temporariamente implementada por um operador, que simplesmente atribui um valor pré-selecionado. Quando todo o aplicativo estiver escrito e depurado, você poderá começar a implementar esta função.

Também é importante que pequenas sub-rotinas sejam muito mais fáceis de depurar, o que aumenta significativamente a confiabilidade geral de todo o programa.

Uma característica muito importante das sub-rotinas é sua reutilização. Grandes bibliotecas de rotinas padrão são fornecidas com sistemas de programação integrados, que podem aumentar significativamente a produtividade usando o trabalho de outra pessoa para criar rotinas usadas com frequência.

Existem dois tipos de sub-rotinas - procedimentos e funções. Eles diferem porque o procedimento simplesmente executa um grupo de instruções e a função, além disso, calcula algum valor e o transfere de volta para o programa principal (retorna um valor). Este valor é de um certo tipo (diz-se que uma função é de tal e tal tipo).

As sub-rotinas realizam três tarefas importantes:

Elimine a necessidade de repetir fragmentos semelhantes no texto do programa muitas vezes;

Melhorar a estrutura do programa, tornando-o mais fácil de entender;

Aumente a resistência a erros de programação e consequências imprevistas durante as modificações do programa.

Programação Orientada a Objetos

Em meados da década de 1980, uma nova direção surgiu na programação, a partir do conceito de objeto. Até então, as principais limitações à possibilidade de criação de grandes sistemas eram impostas pela desunião no programa de dados e métodos de seu processamento.

Os objetos reais do mundo circundante têm três características básicas: eles têm um conjunto de propriedades, são capazes de alterar essas propriedades de maneiras diferentes e reagir a eventos que ocorrem tanto no mundo circundante como dentro do próprio objeto. É desta forma nas linguagens de programação que o conceito de um objeto é implementado como um conjunto de propriedades (estruturas de dados características deste objeto), métodos de seu processamento (subprogramas para alteração de propriedades) e eventos aos quais este objeto pode reagir e que, via de regra, levam a uma alteração das propriedades do objeto.

O surgimento da possibilidade de criar objetos em programas tem um impacto qualitativo na produtividade dos programadores. O volume máximo de aplicativos que se tornaram disponíveis para criação por um grupo de 10 programadores aumentou para milhões de linhas de código em vários anos, enquanto ao mesmo tempo foi possível alcançar alta confiabilidade do programa e, mais importante, reutilizar os criados anteriormente objetos em outras tarefas.

Os objetos podem ter a mesma estrutura e diferir apenas nos valores das propriedades. Nesses casos, um novo tipo é criado no programa com base em uma única estrutura de objeto. É chamado de classe, e cada objeto específico que possui a estrutura dessa classe é chamado de instância da classe.

Uma linguagem de programação orientada a objetos é caracterizada por três propriedades principais:

1. Encapsulamento - combinação de dados com métodos em uma classe;

Gerações de linguagens de programação

A necessidade de programação surgiu antes mesmo dos computadores programáveis. Sabe-se que desde o século XVIII, por exemplo, existem teares programados com pranchas de madeira, nos quais os furos eram feitos nos lugares certos.

O desenvolvimento da programação foi promovido pela ideia de John Von Neumann, publicada em 1945, na qual ele descreveu um computador onde o próprio programa é armazenado na memória junto com os dados.

A linguagem de programação de primeira geração é o código de máquina. O código de máquina consiste em instruções que um computador (processador) pode executar (bem como dados que pertencem a essas instruções). Ao programar em código de máquina, o programador tinha que escrever seu programa em código binário para que o processador pudesse entendê-lo e executá-lo. Em essência, tal programação requer um bom conhecimento e compreensão do hardware, pois no processo de programação é necessário saber o que o processador pode fazer, onde estão localizados os dispositivos de entrada-saída e também como se comunicar com eles. E quanto tempo será gasto nesta ou naquela operação. Assim, o código de máquina está fortemente acoplado ao hardware no qual o programa correspondente será executado. Hoje, o código de máquina não desapareceu dos computadores, todas as ações em um nível baixo (nível de hardware) ainda ocorrem no código de máquina, ou seja, Qualquer que seja a linguagem de programação em que o programa é escrito, ele é finalmente transformado em código de máquina que o hardware pode entender.

As linguagens assembly são consideradas linguagens de segunda geração. No caso do código de máquina, toda a programação ocorria em código binário e, como tal, a leitura e a depuração eram muito demoradas. Ao programar em linguagem assembly, as instruções são apresentadas a uma pessoa de uma forma compreensível. A programação em si é muito semelhante à programação em código de máquina, porque as instruções são as mesmas que em código de máquina (apenas em uma forma diferente - na forma de palavras). Um programa escrito em linguagem Assembly é algo como o seguinte:

MOV AL, 19

ADD AL, 4

OUT 2

Este trecho de código atribui o valor do registro AL 19 (normalmente os valores são representados por números no sistema hexadecimal), adiciona o número 4 ao valor do registro AL e então envia o número 2 para a saída 2. O programa escrito é traduzido de assembler em código de máquina e depois disso o processador pode iniciar sua execução ...

Linguagens assembly e código de máquina são considerados linguagens de baixo nível.

As linguagens de programação de terceira geração já são chamadas de linguagens de alto nível. Essas linguagens de programação não são muito relacionadas ao hardware. Isso significa que o programador não precisa mais saber com muita precisão a estrutura e os recursos do hardware, mas pode ser relativamente independente do hardware, após o que este programa é convertido com a ajuda de algumas ferramentas diferentes em uma forma que o hardware possa entender . Mais especificamente, como isso é feito será descrito posteriormente.

A maioria das linguagens de programação conhecidas e utilizadas estão entre as linguagens de terceira geração, por exemplo:

FORTRAN (The IBM Mathematical FORmula TRANslating System) é uma linguagem de programação desenvolvida na década de 1950 para computação matemática e fins científicos.

COBOL (COmmon Business Oriented Language) - Linguagem de programação orientada a objetos, criada em 1959, principalmente para escrever programas que atendam às necessidades de negócios.

BASIC (Beginner's All-purpose Symbolic Instruction Code) - Uma linguagem desenvolvida em 1963, que foi originalmente criada para que os engenheiros pudessem realizar várias simulações em computadores.

Pascal - Linguagem de programação criada na década de 1970 para ensinar programação.

C - o nome vem do fato de que esta linguagem era baseada principalmente na linguagem chamada B. Ela foi criada para escrever sistemas operacionais (muitos sistemas operacionais compatíveis com UNIX são escritos nesta linguagem), tem sido uma das linguagens de programação mais populares .

C ++ é orientado a objetos C.

Java é uma linguagem de programação desenvolvida com base em C ++.

Visual Basic, Delphi, Python, C # são linguagens de terceira geração. Muitas linguagens de programação de terceira geração são mais jovens (mais recentes) do que algumas linguagens de quarta e quinta gerações.

As linguagens de programação da Geração 4 são projetadas para torná-las fáceis de aprender e usar. Essas linguagens tendem a ser não procedurais e focadas em um único aplicativo. Um exemplo de linguagem de programação de quarta geração é o SQL (Structured Query Language). Diz mais sobre “o que fazer” e menos sobre “como fazer”. Linguagens de quinta geração foram criadas para o desenvolvimento de sistemas de inteligência artificial e para a solução de problemas relacionados a este tópico.

Tipos básicos de linguagens de programação.

Ao contrário de gerações de linguagens de programação, os tipos básicos descrevem como uma linguagem pode ser programada. Os principais tipos básicos incluem: linguagens de programação procedurais, funcionais e orientadas a objetos.

Nas linguagens de programação procedurais, a linguagem de programação descreve as ações e a ordem de sua execução, e também essas ações são divididas em grupos (sub-rotinas). Os procedimentos, por sua vez, formam estruturas de código que podem ser reutilizadas. Em linguagens de programação funcional, toda a solução é descrita usando funções. Em linguagens de programação orientadas a objetos, o problema é resolvido usando funções e estruturas de dados descritas em classes (Aula de Inglês). A partir de cada classe, você pode criar um objeto que terá um conjunto de propriedades e / ou métodos.

Propriedades são valores que um objeto pode conter e que podem afetar o comportamento de um objeto. Por exemplo, com base na classe "janela do console", você pode criar um objeto "console1" que ficará visível para o usuário como uma única janela do console. Este objeto possui algumas propriedades (mostrado, oculto, largura, altura, cor do texto na janela do console, cor de fundo, etc.), ao alterar essas propriedades, você pode alterar a aparência do objeto neste caso particular.

No mesmo exemplo, o objeto pode ter alguns métodos, por exemplo, referindo-se ao método correspondente, você pode escrever algum texto na janela do console, ler o texto inserido pelo usuário em alguma variável, etc.

O segundo exemplo é a classe "variável de texto", criando um objeto "ProstoText" com base nessa classe, criando uma variável de texto, cuja propriedade principal é o valor do texto armazenado, mas na verdade, este objeto tem mais propriedades ( por exemplo, o comprimento do valor de texto armazenado). Além disso, a variável de texto deve ter um determinado conjunto de métodos (alterar os caracteres do valor armazenado para minúsculas, maiúsculas, excluir alguns caracteres, etc.).

Portanto, ao descrever classes e manipular objetos, é possível compor programas muito complexos e realizar várias ações.

Linguagens interpretadas e compiladas

Antes que um computador possa executar um programa escrito em uma linguagem de alto nível, ele deve ser "traduzido" para uma linguagem que o computador possa entender, ou seja, Código da máquina. Este processo de tradução é denominado tradução e o software tradutor é denominado tradutor. Os tradutores são divididos em duas classes: compiladores e intérpretes.

Compilação é quando um programa em código de máquina (chamado de compilador) converte outro programa escrito em uma linguagem de programação em código de máquina. Depois disso, o código de máquina resultante do programa é executado. Exemplos de linguagens compiladas incluem C, Fortran, Pascal.

A interpretação é que o programa em código de máquina (intérprete) grava o arquivo do programa na memória interna e passa a executá-lo linha por linha. Um exemplo é a antiga linguagem BASIC.

A interpretação de um programa é cerca de 10-200 vezes mais lenta do que a execução de um código compilado. Em contraste, depurar (remover erros do programa) de um programa interpretado é geralmente mais fácil do que no caso de um programa traduzido. Em alguns casos adequados e com a disponibilidade de ferramentas disponíveis, essas diferenças podem ser muito menores. Um bom exemplo é Java, com código otimizado e compilado no nível médio, que é traduzido em tempo de execução pelo compilador Just-in-Time para se ajustar ao hardware específico.

Em princípio, um programa escrito em qualquer linguagem pode ser interpretado e compilado.

No momento, existem muitas direções na programação. Todos podem encontrar algo do seu agrado, mas para isso você precisa saber exatamente o que estará fazendo na sua área.

Desenvolvimento de aplicações web

Essa direção está focada no desenvolvimento de aplicativos da web (em outras palavras, sites, mas atualmente os sites têm uma funcionalidade tão rica que podem ser chamados de aplicativos completos).

A programação da Web pode ser dividida em backend (escrever scripts do lado do servidor - PHP, Python, Ruby) e frontend (desenvolver interface de usuário - Javascript, HTML, CSS).

Desenvolvimento de aplicativos de desktop

Desenvolvimento de software para diversos sistemas operacionais. Toda a variedade de softwares que usamos no dia a dia. Se você deseja escrever seu próprio processador de fotos, reprodutor de áudio ou editor de texto, este é o lugar para você.

Desenvolvimento de aplicativos de servidor

São vários servidores de jogos (seu Dotka favorito, CS: GO), serviços de mensagens instantâneas (o lado do servidor do Skype, ICQ, MSN), bancos de dados bancários.

Desenvolvimento de aplicativos mobile

Muitos aplicativos Java. VK, Viber, Yandex.Maps, tradutores, leitores eletrônicos.

Programação embutida

Um interessante ramo de programação para diversos eletrodomésticos: aspiradores de pó, geladeiras, máquinas de lavar, tocadores, navegadores, balanças eletrônicas. Envolve desenvolvimentos científicos usando linguagens especializadas como o MATLAB.

Programação do Sistema

Escrevendo vários drivers para hardware, programando o "kernel" dos sistemas operacionais. A propósito, a criação de compiladores e interpretadores para linguagens de programação também está incluída aqui.

Desenvolvimento de jogos

Uma indústria gigante. Isso inclui o desenvolvimento de jogos para PCs, consoles e dispositivos móveis.

Programação de olimpíadas e resolução de problemas

Programação em várias linguagens "impraticáveis" e não comuns (Pascal, Delphi) para resolver alguns problemas originais que requerem uma abordagem não padronizada, engenhosidade e QI acima de 160.

Programação para produtos contábeis e financeiros

"1C: Empresa". Toda a contabilidade na Rússia está vinculada a este produto. Mas não basta saber apenas a linguagem em si, é importante entender os fundamentos da contabilidade. A vantagem é que há muito trabalho e você não vai ficar sem pão.

Programação de banco de dados

Direção séria. Se você deseja desenvolver bancos de dados capazes de armazenar bilhões de linhas de informações sobre todos os usuários do VKontakte ou do Facebook e, ao mesmo tempo, não desacelerar - você está aqui.

Ciência

Ciência e isso diz tudo. Redes neurais, modelagem de estrutura de DNA, lançamento de satélite, simulação de Big Bang.

Aliás, recentemente o site da NASA publicou a notícia sobre a busca por um programador na "antiga" linguagem Fortran, que tem mais de 60 anos. Um programador foi solicitado a desenvolver programas para controlar as sondas automáticas Voyager 1 e Voyager 2, o software para o qual havia sido escrito em Assembler, Fortran e COBOL na década de 1970. Você nunca sabe que tipo de conhecimento pode ser útil.