O que é linguagem de programação, IDE e compilador? 30.01.17 4:10
Linguagem de programação é um conceito mais abstrato, são as regras especificadas que regem como um código deve se comportar para produzir programas de computador. A linguagem não é um programa que executa.
Compilador é o que concretiza a linguagem de programação, é o que aplica essas regras e transforma o que um humano entende no código que a máquina entende e é capaz de executar. É um programa de transformação. Normalmente ele é um programa que roda em console através da linha de comando.
IDE é uma ferramenta (um software) que ajuda todo processo de desenvolvimento de software, integrando outras ferramentas e facilitando seu uso. A principal função dele é o editor de texto.
Hoje em dia é muito comum as pessoas, principalmente quando estão começando a programar, não entender muito bem todos os aspectos do que envolve o processo de desenvolvimento de software, toda teoria da computação, e o papel de cada ferramenta neste processo. IDE não é a linguagem de programação.
IDE
Como as pessoas começam como usuários de computador onde o normal é usar um Microsoft Word, por exemplo, e aquilo faz tudo o que ele precisa em termos de edição de texto, quando ela vai programar, mandam ela instalar o Visual Studio, o Eclipse, o Android Studio ou algum outro IDE. Ela acha que aquilo é a linguagem de programação.
O IDE (Integreted Develpment Environment) é o ambiente de desenvolvimento integrado (note que é masculino), ou seja, é o programa que integra as várias ferramentas necessárias para o desenvolvimento de softwares, ajudando todo o processo ficar mais fácil.
Sua principal função é ajudar o programador editar o código que será usado para criar seu programa.
Outra coisa muito importante que todos IDEs fazem é chamar o compilador, ou interpretador, dentro de certos parâmetros para gerar e/ou executar o programa criado, se ele não contiver erros.
Ele também ajuda:
depurar programas durante a execução com várias facilidades;
gerenciar os projetos e suas configurações
executar testes, montar o deploy ou até mesmo fazê-lo;
fazer análise estática;
controle de versão;
acessar banco de dados;
gerar códigos automaticamente para certos padrões de codificação, como telas e relatórios;
dar acesso fácil à documentação;
diversas ajudas durante o processo de edição do código.
Isso pode variar de IDE para IDE e como ele está configurado. Como o nome diz, estas ferramentas costumam ser integradas. Claro que algumas estão lá por padrão, mas muitas delas dependem de um programa externo para executar a tarefa. O próprio compilador da linguagem normalmente é algo externo.
Um IDE pode suportar várias linguagens (ter ferramentas específicas para apoiar o uso de determinada linguagem).
Compilador
O compilador é o programa que analisa e gera o executável do que está sendo criado. Ele pega um texto compreensível por humanos - o que o programador escreveu - e transforma em código compreensível por máquinas, um código binário que possui instruções do que o processador deve executar (há casos de código intermediário).
Obviamente ele não é um programa mágico, especial. Ele é apenas um processador de dados, como tantos outros. Ele lê textos e os transforma. De uma certa forma, é um programa relativamente simples. Claro que há complexidade em interpretar toda a gramática de uma linguagem, e cada uma tem seu grau de complexidade.
Durante esse processo, erros sintáticos e semânticos são verificados, otimizações podem ser feitas, e uma geração de novo código é realizada.
Em alguns casos é possível interpretar este código ao invés do processo tradicional de compilação, ainda que a interpretação envolva um processo de compilação interno.
O compilador deve entender as regras que uma determinada linguagem de programação foi construída. E deve garantir que todas elas foram seguidas, transformando o código escrito obedecendo estas regras.
Em geral o compilador é um programa de console, mas há casos que eles são bibliotecas que podem ser usadas em conjunto com outros programas.
Existem compiladores que suportam várias linguagens, ainda que costume existir uma certa separação (em geral há uma plataforma de compilação única mas compiladores diferentes).
Linguagem de programação
A linguagem de programação é este conjunto de regras. É o que define a sintaxe e semântica a ser obedecida. Assim como todo língua. Mas neste caso é uma língua mais limitada, mais lógica e com um propósito específico.
Estas linguagens pode ser C, C++, C#, Java, BASIC, COBOL, Fortran, Pascal, Go, D, PHP, JavaScript, Python, Ruby, Perl, Lua, Lisp, Haskell, etc.
Existem tantas porque cada uma possui um ponto forte. Além de atender melhor um tipo de problema específico, atende gostos de pessoas diferentes. Há casos que não é bem a linguagem em si que a torna viável para um problema, mas a infraestrutura que foi montada em torno dela.
Este conjunto de regras é definido por uma gramática e provavelmente uma especificação formal, ainda que alguns casos mais específicos, a implementação do compilador é que define como a linguagem se comporta. Em geral isto ocorre em linguagens não padronizadas e que só possuem apenas um compilador para ela.
Entenda Como é desenvolvida uma linguagem de programação?.
É comum os compiladores não seguirem a especificação 100%, em geral por falha, ou mais ainda, adicionar capacidades que a especificação não determina. Evidentemente isto é a exceção, caso contrário começaria se transformar em outra linguagem.
Nem todas linguagens são de programação.
Onde você programa?
Você usa o IDE para facilitar o trabalho de desenvolvimento. Mas ele é apenas um facilitador e não pode ser confundido com a linguagem de programação. Qualquer problema que você está tendo com o código que está escrevendo é um problema com a linguagem e não com o IDE. Fazendo uma comparação com outras línguas, se você não sabe como escreve uma palavra em português ou como construir uma frase, não pode dizer que isto é uma dificuldade que está tendo com o Word. É uma dificuldade com o português.
Um problema com o IDE ocorre durante o processo geral de desenvolvimento. Quando algo falha ou a dificuldade encontrada é no IDE, você tem um problema nele. Comparando novamente, quando você não está conseguindo fazer um parágrafo no Word, é uma dificuldade com o Word.
Quando alguma das ferramentas usadas falham ou você encontra dificuldade isoladamente, você tem um problema nela especificamente. Isso pode ser até o compilador, mas raramente um problema é do compilador em si.
A maior parte das falhas ou dificuldades que a pessoa encontra durante o processo é durante o processo de compilação, mas porque o código tem algum problema, não porque o IDE ou o compilador não estão funcionando. Então o problema é com a linguagem de programação.
E não, o bug não está no IDE ou no compilador. O bug está no seu código escrito. É quase mais fácil acertar na loteria do que uma pessoa iniciante em programação achar um bug, principalmente no compilador, impedindo o uso correto da linguagem.
Um IDE pode usar compiladores diferentes. Não só para linguagens diferentes, mas também para a mesma linguagem. A linguagem é única (ainda que possa ter dialetos), os compiladores não, e IDE menos ainda. O fato da maioria das pessoas usarem um determinado IDE para uma linguagem não torna ele como parte da linguagem.
Um IDE é totalmente desnecessário para usar uma linguagem de programação (bem, pode existir alguma linguagem esotérica que exija). O compilador é absolutamente necessário, ainda que em alguns casos ele seja mais um interpretador.
Fonte: stackoverflow
Compilador é o que concretiza a linguagem de programação, é o que aplica essas regras e transforma o que um humano entende no código que a máquina entende e é capaz de executar. É um programa de transformação. Normalmente ele é um programa que roda em console através da linha de comando.
IDE é uma ferramenta (um software) que ajuda todo processo de desenvolvimento de software, integrando outras ferramentas e facilitando seu uso. A principal função dele é o editor de texto.
Hoje em dia é muito comum as pessoas, principalmente quando estão começando a programar, não entender muito bem todos os aspectos do que envolve o processo de desenvolvimento de software, toda teoria da computação, e o papel de cada ferramenta neste processo. IDE não é a linguagem de programação.
IDE
Como as pessoas começam como usuários de computador onde o normal é usar um Microsoft Word, por exemplo, e aquilo faz tudo o que ele precisa em termos de edição de texto, quando ela vai programar, mandam ela instalar o Visual Studio, o Eclipse, o Android Studio ou algum outro IDE. Ela acha que aquilo é a linguagem de programação.
O IDE (Integreted Develpment Environment) é o ambiente de desenvolvimento integrado (note que é masculino), ou seja, é o programa que integra as várias ferramentas necessárias para o desenvolvimento de softwares, ajudando todo o processo ficar mais fácil.
Sua principal função é ajudar o programador editar o código que será usado para criar seu programa.
Outra coisa muito importante que todos IDEs fazem é chamar o compilador, ou interpretador, dentro de certos parâmetros para gerar e/ou executar o programa criado, se ele não contiver erros.
Ele também ajuda:
depurar programas durante a execução com várias facilidades;
gerenciar os projetos e suas configurações
executar testes, montar o deploy ou até mesmo fazê-lo;
fazer análise estática;
controle de versão;
acessar banco de dados;
gerar códigos automaticamente para certos padrões de codificação, como telas e relatórios;
dar acesso fácil à documentação;
diversas ajudas durante o processo de edição do código.
Isso pode variar de IDE para IDE e como ele está configurado. Como o nome diz, estas ferramentas costumam ser integradas. Claro que algumas estão lá por padrão, mas muitas delas dependem de um programa externo para executar a tarefa. O próprio compilador da linguagem normalmente é algo externo.
Um IDE pode suportar várias linguagens (ter ferramentas específicas para apoiar o uso de determinada linguagem).
Compilador
O compilador é o programa que analisa e gera o executável do que está sendo criado. Ele pega um texto compreensível por humanos - o que o programador escreveu - e transforma em código compreensível por máquinas, um código binário que possui instruções do que o processador deve executar (há casos de código intermediário).
Obviamente ele não é um programa mágico, especial. Ele é apenas um processador de dados, como tantos outros. Ele lê textos e os transforma. De uma certa forma, é um programa relativamente simples. Claro que há complexidade em interpretar toda a gramática de uma linguagem, e cada uma tem seu grau de complexidade.
Durante esse processo, erros sintáticos e semânticos são verificados, otimizações podem ser feitas, e uma geração de novo código é realizada.
Em alguns casos é possível interpretar este código ao invés do processo tradicional de compilação, ainda que a interpretação envolva um processo de compilação interno.
O compilador deve entender as regras que uma determinada linguagem de programação foi construída. E deve garantir que todas elas foram seguidas, transformando o código escrito obedecendo estas regras.
Em geral o compilador é um programa de console, mas há casos que eles são bibliotecas que podem ser usadas em conjunto com outros programas.
Existem compiladores que suportam várias linguagens, ainda que costume existir uma certa separação (em geral há uma plataforma de compilação única mas compiladores diferentes).
Linguagem de programação
A linguagem de programação é este conjunto de regras. É o que define a sintaxe e semântica a ser obedecida. Assim como todo língua. Mas neste caso é uma língua mais limitada, mais lógica e com um propósito específico.
Estas linguagens pode ser C, C++, C#, Java, BASIC, COBOL, Fortran, Pascal, Go, D, PHP, JavaScript, Python, Ruby, Perl, Lua, Lisp, Haskell, etc.
Existem tantas porque cada uma possui um ponto forte. Além de atender melhor um tipo de problema específico, atende gostos de pessoas diferentes. Há casos que não é bem a linguagem em si que a torna viável para um problema, mas a infraestrutura que foi montada em torno dela.
Este conjunto de regras é definido por uma gramática e provavelmente uma especificação formal, ainda que alguns casos mais específicos, a implementação do compilador é que define como a linguagem se comporta. Em geral isto ocorre em linguagens não padronizadas e que só possuem apenas um compilador para ela.
Entenda Como é desenvolvida uma linguagem de programação?.
É comum os compiladores não seguirem a especificação 100%, em geral por falha, ou mais ainda, adicionar capacidades que a especificação não determina. Evidentemente isto é a exceção, caso contrário começaria se transformar em outra linguagem.
Nem todas linguagens são de programação.
Onde você programa?
Você usa o IDE para facilitar o trabalho de desenvolvimento. Mas ele é apenas um facilitador e não pode ser confundido com a linguagem de programação. Qualquer problema que você está tendo com o código que está escrevendo é um problema com a linguagem e não com o IDE. Fazendo uma comparação com outras línguas, se você não sabe como escreve uma palavra em português ou como construir uma frase, não pode dizer que isto é uma dificuldade que está tendo com o Word. É uma dificuldade com o português.
Um problema com o IDE ocorre durante o processo geral de desenvolvimento. Quando algo falha ou a dificuldade encontrada é no IDE, você tem um problema nele. Comparando novamente, quando você não está conseguindo fazer um parágrafo no Word, é uma dificuldade com o Word.
Quando alguma das ferramentas usadas falham ou você encontra dificuldade isoladamente, você tem um problema nela especificamente. Isso pode ser até o compilador, mas raramente um problema é do compilador em si.
A maior parte das falhas ou dificuldades que a pessoa encontra durante o processo é durante o processo de compilação, mas porque o código tem algum problema, não porque o IDE ou o compilador não estão funcionando. Então o problema é com a linguagem de programação.
E não, o bug não está no IDE ou no compilador. O bug está no seu código escrito. É quase mais fácil acertar na loteria do que uma pessoa iniciante em programação achar um bug, principalmente no compilador, impedindo o uso correto da linguagem.
Um IDE pode usar compiladores diferentes. Não só para linguagens diferentes, mas também para a mesma linguagem. A linguagem é única (ainda que possa ter dialetos), os compiladores não, e IDE menos ainda. O fato da maioria das pessoas usarem um determinado IDE para uma linguagem não torna ele como parte da linguagem.
Um IDE é totalmente desnecessário para usar uma linguagem de programação (bem, pode existir alguma linguagem esotérica que exija). O compilador é absolutamente necessário, ainda que em alguns casos ele seja mais um interpretador.
Fonte: stackoverflow