linguagem de programação vs linguagem de marcação vs linguagem de script

37

Até agora não conheço as diferenças KEY entre esses três. Quando alguém me pergunta sobre isso, eu só digo a eles que C # é uma linguagem de programação, HTML e XML são Markup Languages, e JavaScript e VBScript são linguagens de script. Mas quais são as principais diferenças que os diferenciam uns dos outros?

    
por rcadaoas 26.05.2014 / 09:48
fonte

5 respostas

34

Deixe-me tentar encontrar uma linha divisória entre esses três tipos de linguagem. Claro, haverá inúmeras exceções e contraexemplos, uma vez que esta é apenas a minha opinião.

  • Uma linguagem de marcação é usada para controlar a apresentação de dados, como "representar esses nomes de usuário como uma lista de marcadores ou como uma tabela".

  • Uma linguagem de script é usada para mediar entre programas para gerar dados. Isso é especialmente verdadeiro para linguagens de script shell como o bash, mas se você refletir sobre isso, também Python ou Perl vieram da necessidade de realizar tarefas no UNIX sem escrever um programa em C. O programa que você controla na maior parte do tempo nesses idiomas é o intérprete da própria linguagem , que realiza tarefas gerais para você. Outros programas típicos com os quais você interage são servidores de banco de dados ou servidores da web.

    Voltando à metáfora da lista de usuários, em uma linguagem de script você pergunta ao banco de dados "me dê todos os nomes de usuário" e, em seguida, solicita ao servidor web "enviar essa lista de usuários a este solicitante".

  • Uma linguagem de programação é usada para transformar dados . Ele faz isso criando instruções de CPU que reescrevem os dados de entrada na saída; esperançosamente, a saída desejada . Exemplos de transformação de dados é calcular uma soma de um número de adendos, ou resolver um sistema de equações diferenciais de um conjunto de condições, ou escrever e ler de uma estrutura semelhante a árvore de uma maneira consistente, dada uma sequência de consultas possivelmente simultâneas. .

    Voltando à metáfora da lista de usuários, em uma linguagem de programação, você escreve como percorrer uma tabela de registros, extrai de cada registro o campo "nome" e retorna todos ao solicitante.

Observe que as linguagens de script são um subconjunto de linguagens de programação, ou seja, uma linguagem pode ser "scripting" e "programming": o Python é usado regularmente para "mediar entre programas" e também "transformar dados". Existem outras linguagens, como Java, que raramente são usadas para "mediar entre programas", não porque isso seja impossível, mas porque elas não são projetadas para tornar isso fácil. O principal recurso de uma linguagem de script é que ela pode orquestrar outros programas, da mesma forma que um script permite que um ator inicie sua parte.

    
por 26.05.2014 / 12:36
fonte
11

Uma linguagem de marcação é uma linguagem que é usada para representar dados estruturados. Por exemplo, o HTML permite especificar que alguma parte do documento é um título ou outra parte é uma lista, em comparação com um documento de texto simples.

As linguagens de marcação não são consideradas como linguagens de programação¹.

A diferença com linguagens de programação nem sempre é óbvia. Por exemplo, XSLT é uma linguagem Turing-complete², mas é baseada em XML, que é uma linguagem de marcação.

A própria Wikipédia faz esforços importantes para evitar a qualificação do XSLT como uma linguagem de programação ou uma linguagem de marcação. Diz apenas que é uma linguagem declarativa e que usa “técnicas de otimização encontradas em linguagens de programação funcionais e linguagens de consulta de banco de dados”.

Uma linguagem de script é uma linguagem de programação que é interpretada, em vez de compilada, o que significa que as linguagens de script representam um subconjunto de todas as linguagens de programação.

Nem sempre é óbvio se uma linguagem de programação é uma linguagem de script, como nem sempre é óbvio se uma linguagem é compilada ou interpretada. Por exemplo, o PHP pode ser compilado para o bytecode intermediário³ e, em seguida, ser convertido em código de máquina pelo compilador JIT, sendo ainda considerado como linguagem de script⁴.

Veja também: Splitting Meta-Hairs de Steven Lott.

¹ “XML não é uma linguagem de programação”. Veja XML em 10 pontos .

² “XSLT é uma linguagem completa de Turing” Veja XSLT na Wikipedia

³ “O HHVM compila Hack e PHP em um bytecode intermediário. Este bytecode é então traduzido em código de máquina x64 dinamicamente em tempo de execução por um compilador just-in-time (JIT). ”Veja HHVM .

Linguagens de script em Lista de linguagens de programação por tipo na Wikipédia.

    
por 26.05.2014 / 09:53
fonte
2

Para produzir qualquer tipo de taxonomia, você precisa primeiro se fazer algumas perguntas:

  • Os objetos que vou colocar em qualquer relacionamento definido corretamente?
  • Se sim, eles realmente existem?
  • Estou me limitando a apenas um tipo específico de relacionamentos entre objetos, ou existe um requisito definido para o sistema usar apenas relações legítimas?

Normalmente, quando alguém ouve uma pergunta como a que você perguntou, a resposta esperada faz várias suposições. Por exemplo, é natural supor que, uma vez que todas são linguagens, elas devem formar uma hierarquia sob um conceito mais geral de linguagem, ou que elas particionem o espaço de todas as linguagens, ou que sejam subconjuntos umas das outras.

Linguagens de programação

Infelizmente, nenhuma das situações acima parece ser verdadeira. Talvez apenas as linguagens de programação tenham uma definição mais aceita. Linguagens de programação são linguagens que codificam programas. Codificação significa que uma palavra na linguagem pode ser interpretada como um programa (uma sequência de ações). Linguagens de programação de computadores são um subconjunto delas. Exemplos de linguagens de programação não-computadorizadas: uma lista de compras, interpretadas como instruções para um comprador em um supermercado, DNA interpretado por transcrição de peptídeos, um registro musical analógico que funciona como um programa para um gravador.

Linguagens de programação de computadores são, portanto, aquelas que programam computadores.

Idiomas de script

Não são bem definidos. Está aberto à interpretação o que este termo significa. Historicamente, parece que as linguagens de programação que não tinham um compilador para produzir código de máquina foram chamadas dessa maneira. Pelos padrões de hoje, isso colocaria toda linguagem de programação popular sem os Montadores nessa categoria. Mesmo as chamadas linguagens de baixo nível como C requerem um tempo de execução com procedimentos pré-existentes, assim os binários obtidos pela compilação de um programa C não são inteiramente códigos de máquina, mas também chamam o tempo de execução de vez em quando. >

Linguagens de marcação

Não são bem definidos. Sempre que o termo é usado, a intenção parece ser descrever uma linguagem de programação com um léxico muito limitado, usado principalmente para gerar imagens visuais ou de áudio. Pode ser difícil ver o XML como algo de programação, mas se você olhar para a marcação Man ou TexInfo, verá que os caracteres "especiais" são, na verdade, instruções do interpretador.

Também é possível fornecer uma interpretação de "programação" para a linguagem XML, algo que poderia ser assim:

< := put interpreter in the reading node mode
! := if reading node, start CData/Comment mode
     else if not in read text mode, signal error
-- := if in start CData/Comment mode, start comment
      else if in comment, put in end comment mode
      else if in end comment mode, signal error
...
Conclusão: esta divisão a partir de hoje, não parece muito significativa, só pode dar-lhe alguma intuição sobre o tipo de linguagem que você enfrenta, mas não lhe dará uma definição rigorosa.

    
por 19.09.2015 / 14:39
fonte
1

Todos os três conceitos se sobrepõem um pouco, assim você pode obter argumentos infinitos se o XSLT é uma linguagem de programação ou se o Python é uma linguagem de script ou não.

Uma linguagem de marcação é uma linguagem que representa dados estruturados em formato textual , o HTML é o mais conhecido, mas há vários formatos para várias finalidades, como SVG para gráficos, WSDL para descrever interfaces de serviço da web, resx para arquivos de recursos em .net e assim por diante. Uma regra geral é que uma linguagem de marcação não descreve um processo ou algoritmo (como uma linguagem de programação), mas é um dado puro. Mas também é uma percepção fundamental da CS que não existe diferença fundamental entre o código e os dados. Algumas linguagens de marcação como XSLT têm loops e condicionais como uma linguagem de programação "real", e algumas linguagens de programação, como Prolog, são dados quase puros, sem nenhum processo especificado no código. E Lisp embaça tanto a linha que trata seu próprio código como um formato de dados estruturado.

Quanto à distinção entre linguagem de programação e linguagem de script , essa é uma distinção histórica que está quase obsoleta hoje. Antigamente, tínhamos compilado programas independentes escritos em, digamos C, e depois tínhamos linguagens de script, como, por exemplo, scripts de shell ou Word Basic, que eram interpretados e projetados para manipular outros programas e ferramentas. Hoje a linha é bastante difusa com muito meio-termo, já que temos vários níveis de compilação e interpretação (compilação bytecode, compilação JIT etc.), e várias APIs independentes de linguagem. Então a distinção não é tão útil.

    
por 19.09.2015 / 18:03
fonte
0

Uma linguagem de marcação é usada para descrever dados em vez de lógica. Um uso típico deles é descrever a formatação do documento, o HTML é projetado para isso, por exemplo. Mas, às vezes, eles também são usados como formatos gerais de dados. XML é uma linguagem de marcação usada com freqüência para descrever apenas os dados.

A diferença entre linguagens de programação e de script é muito difusa, ambas tendem a estar completas, na medida em que você pode resolver qualquer problema computável com elas. Existem algumas "dicas" gerais que você pode procurar para ver se uma linguagem é uma linguagem de programação ou não.

  • As linguagens de script geralmente são interpretadas, em vez de compiladas, ou pelo menos fornecem a opção de serem interpretadas.
  • As linguagens de script costumam ser criadas para serem rápidas de trabalhar em vez de serem rápidas de serem executadas.
  • Linguagens de script tendem a vir com bibliotecas padrão muito extensas. Muitas linguagens de programação também, mas é mais opcional para elas.

Mas, no final, se uma linguagem é linguagem de script ou linguagem de programação é mais uma questão de convenção do que de qualquer critério estrito. Mesmo as dicas acima são apenas tendências, você encontrará linguagens de programação que preenchem todos os critérios para uma linguagem de script, mas ainda são consideradas linguagens de programação.

    
por 26.05.2014 / 10:11
fonte