Até agora eu não sei os CHAVE diferenças entre estes três. Quando alguém me pergunta sobre isso, digo apenas que C # é uma linguagem de programação, HTML e XML são linguagens de marcação e JavaScript e VBScript são linguagens de script. Mas quais são as principais diferenças que os distinguem?
programming-languages
terminology
scripting
markup
rcadaoas
fonte
fonte
Respostas:
Deixe-me tentar encontrar uma linha divisória entre esses três tipos de linguagem. Obviamente, haverá inúmeras exceções e contra-exemplos, pois essa é apenas a minha opinião.
Uma linguagem de marcação é usada para controlar a apresentação dos 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 , a fim de gerar dados. Isso vale especialmente para linguagens de script de 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 maioria das vezes nessas linguagens é o intérprete do próprio idioma , 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ê solicita ao banco de dados "me dê todos os nomes de usuário" e depois pede ao servidor da Web "envie esta lista de usuários a este solicitante".
Uma linguagem de programação é usada para transformar dados . Isso é feito criando instruções da CPU que reescrevem os dados de entrada na saída; felizmente, a saída desejada . Exemplos de transformação de dados é calcular uma soma de um número de adendas, ou resolver um sistema de equações diferenciais de um conjunto de condições, ou escrever e ler de uma estrutura semelhante a uma árvore de 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, extrair de cada registro o campo "nome" e retornar todos eles ao solicitante.
Observe que as linguagens de script são um subconjunto das linguagens de programação, ou seja, uma linguagem pode ser "script" e "programação": Python é regularmente usado para "mediar entre programas" e também para "transformar dados". Existem outras linguagens como Java, que raramente são usadas para "mediar entre programas", não porque isso é impossível, mas porque elas não foram projetadas para facilitar isso. A principal característica de uma linguagem de script é que ela pode orquestrar outros programas, assim como um script dá a dica para um ator começar sua parte.
fonte
Uma linguagem de marcação é uma linguagem usada para representar dados estruturados. Por exemplo, o HTML permite especificar que uma parte do documento é um título ou outra parte é uma lista, em comparação com um documento de texto simples.
Linguagens de marcação não são consideradas como linguagens de programação¹.
A diferença com as linguagens de programação nem sempre é óbvia. Por exemplo, XSLT é uma linguagem completa de Turing², mas é baseada em XML, que é uma linguagem de marcação.
A própria Wikipedia 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 utiliza “técnicas de otimização encontradas em linguagens de programação funcional 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 intermediar o bytecode³ e depois traduzido para o código da máquina pelo compilador JIT, enquanto ainda é considerado como linguagem de script⁴.
Veja também: Divisão de meta-pêlos de Steven Lott.
XML “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 o Hack e o PHP em um bytecode intermediário. Esse bytecode é então convertido em código de máquina x64 dinamicamente em tempo de execução por um compilador just-in-time (JIT). ”Consulte HHVM .
Languages Linguagens de script em Lista de linguagens de programação por tipo na Wikipedia.
fonte
TypeError
! Todo idioma pode ser implementado por um intérprete, todo idioma pode ser implementado por um compilador.Para produzir qualquer tipo de taxonomia, você precisa primeiro fazer algumas perguntas a si mesmo:
Normalmente, quando alguém ouve uma pergunta como a que você fez, a resposta esperada faz várias suposições. Por exemplo, é natural supor que, como todos esses são idiomas, eles devem formar uma hierarquia sob um conceito mais geral de idioma, ou que particionem o espaço de todos os idiomas ou que sejam subconjuntos um do outro.
Linguagens de programação
Infelizmente, nenhuma das opções acima parece ser verdade. Talvez apenas as linguagens de programação tenham uma definição com a qual mais concordamos. Linguagens de programação são linguagens que codificam programas. Codificação significa que uma palavra no idioma 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 que não são de computador: uma lista de compras, interpretada como instruções para um comprador em um supermercado, DNA interpretado pela transcrição de peptídeos, um registro musical analógico que serve como um programa para um gravador.
Portanto, linguagens de programação de computadores são as que programam computadores.
Linguagens de script
Não estão bem definidos. Está aberto à interpretação o que esse termo significa. Historicamente, parece que as linguagens de programação que não possuíam um compilador para produzir código de máquina foram chamadas dessa maneira. Pelos padrões atuais, isso colocaria toda linguagem de programação popular sem os Assemblers nessa categoria. Mesmo as chamadas linguagens de baixo nível, como C, exigem um tempo de execução com procedimentos pré-existentes; portanto, 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 estão bem definidos. Sempre que o termo é usado, a intenção parece ser descrever uma linguagem de programação com léxico muito limitado, usada principalmente para gerar imagens visuais ou de áudio. Pode ser difícil ver o XML como programando alguma coisa, mas se você observar a marcação Man ou TexInfo, verá que os caracteres "especiais" são realmente instruções do intérprete.
Também é possível fornecer uma interpretação de "programação" para a linguagem XML, algo que poderia ser assim:
Conclusão: hoje, essa divisão não parece muito significativa; ela só pode lhe dar alguma intuição sobre o tipo de linguagem com que se depara, mas não fornece uma definição rigorosa.
fonte
Todos os três conceitos se sobrepõem um pouco, para que você possa obter argumentos sem fim, seja XSLT uma linguagem de programação ou Python, uma linguagem de script ou não.
Uma linguagem de marcação é uma linguagem que representa dados estruturados em um formato de texto , o HTML é o mais conhecido, mas existem vários formatos para diversos fins, como SVG para gráficos, WSDL para descrever interfaces de serviço da web, resx para recuperar arquivos em. net e assim por diante. Uma regra prática é que uma linguagem de marcação não descreve um processo ou algoritmo (como uma linguagem de programação), mas são dados puros. Mas também é uma percepção fundamental CS que não énenhuma diferença fundamental entre código e dados. Algumas linguagens de marcação como o XSLT possuem loops e condicionais como uma linguagem de programação "real", e algumas linguagens de programação como o Prolog são dados quase puros, sem processo especificado no código. E o Lisp confunde 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 quase obsoleta atualmente. Antigamente, compilávamos programas independentes escritos em say C e, em seguida, tínhamos linguagens de script como say shell scripts ou Word Basic, que eram interpretadas e projetadas para manipular outros programas e ferramentas. Hoje a linha está bastante borrada com muito meio termo, já que temos vários níveis de compilação e interpretação (compilação de bytecode, compilação JIT etc.) e várias APIs independentes de idioma. Portanto, a distinção não é tão útil.
fonte
Uma linguagem de marcação é usada para descrever dados em vez de lógica. Um uso típico deles é descrever a formatação de documentos; o HTML é projetado para isso, por exemplo. Mas às vezes também são usados como formatos gerais de dados, XML é uma linguagem de marcação que geralmente é usada apenas para descrever dados.
A diferença entre linguagens de programação e de script é muito imprecisa, ambas tendem a ser completas, pois você pode resolver qualquer problema computável com elas. Existem algumas 'dicas' gerais que você pode procurar para ver se uma linguagem é ou não uma linguagem de programação.
Mas, no final, se uma linguagem é uma linguagem de script ou de programação, é mais uma questão de convenção do que qualquer critério estrito. Mesmo as dicas acima são apenas tendências, você encontrará linguagens de programação que atendem a todos os critérios para uma linguagem de script e ainda são consideradas linguagens de programação.
fonte
TypeError
! Todo idioma pode ser implementado por um intérprete, todo idioma pode ser implementado por um compilador. É até possível gerar automaticamente um compilador a partir de um intérprete e vice-versa.