Contents

HTML e CSS são realmente linguagens?

,

No mundo da programação, há muito tempo existe um debate sobre se as linguagens HTML e CSS, que são a base do desenvolvimento web, são ou não ‘linguagens de programação’. Seja em discussões on-line ou não, não é incomum encontrar programadores de linguagens de programação ‘reais’ sendo bruscos quando ouvem alguém sugerir que sabem programar só porque aprenderam HTML.

No StackOverflow, na verdade, eles se perguntam por que tendem a ser “tão pendentes” com esse tópico, enquanto alguns web designers consideram que programadores com ‘pedigree’ são muito dogmáticos em sua definição de linguagens.

Mas este não é um debate trivial: A nível técnico, é importante ser claro sobre o que constitui uma linguagem de programação e o que não constitui. E também ter claro o que HTML e CSS realmente são capazes de fazer, para tirar qualquer dúvida sobre a tag mais correta a ser aplicada a eles.

A primeira coisa a ficar clara é quais critérios usar para decidir o que é uma linguagem de programação e o que não é. E o mais comum e tradicional para isso é a capacidade de uma linguagem ser’Turing-completa'. Mas o que diabos é isso?

Um olhar sobre… A carreira do programador em 2017 e no futuro (com Javier Santana)

Turing-O quê?

/images/17262af2d598064a1e072b27cfdf368a98ce656be79ec5252189a395b605136a.jpg

Uma linguagem de programação é considerada Turing-completa quando tem a capacidade de realizar qualquer cálculo que uma Máquina de Turing possa realizar. A questão óbvia, então, é: “O que é uma Máquina de Turing?”

Na verdade, é bem sabido que quando mencionamos “Turing” na nossa discussão, estamos a aludir a ninguém menos que Alan Turing, a figura pioneira que lançou as bases para a computação contemporânea. As suas contribuições cruciais para decifrar as comunicações inimigas através do uso de máquinas Enigma durante a Segunda Guerra Mundial desempenharam um papel fundamental na garantia da vitória das forças aliadas.

Mas essas não são as máquinas às quais nos referimos, mas sim um dispositivo abstrato que Turing teorizou em 1936 , que tinha as seguintes características:

-Consiste em uma fita infinita dividida em células, um cabeçote de leitura/gravação que se move ao longo da fita e um conjunto finito de estados e regras de transição. -Você pode ler e escrever símbolos na fita, alterar estados de acordo com as regras e mover-se para a esquerda ou para a direita. /images/0c8110b1ff27bb706813b8c4966fee7d450c821a866986b346cae127a2efc17d.jpg Neste site A estrutura IF-THEN-ELSE: sua origem e seu papel na criação da inteligência artificial

Apesar da sua aparente simplicidade, este conceito serve como uma abstração altamente valiosa, como evidenciado pela demonstração de Alan Turing da sua capacidade de abranger todos os problemas computáveis, independentemente daqueles que os computadores não conseguem resolver. Em outras palavras, se um problema específico pode ser formulado em termos de um processo algorítmico, então ele pode, teoricamente, ser resolvido através da utilização de uma máquina de Turing.

Portanto, ser’Turing-completo’significa que a linguagem em questão deve ser capaz de simular qualquer algoritmo de computação, realizando três tarefas fundamentais:

-Ler e gravar em uma mídia de armazenamento. -Controle o fluxo de execução usando instruções condicionais (como if/else) e loops (como for ou while). -Modifique seu próprio código ou estado durante a execução.

Três exemplos rápidos de linguagem Turing-complete seriam Python, Java e C\+\+.

HTML e CSS, no entanto, não atendem a estes critérios: HTML é uma linguagem de marcação usada para estruturar conteúdo na web, enquanto CSS é uma linguagem de estilo usada para descrever a apresentação visual de um documento HTML.

0

HTML e CSS, mais do que aparenta (mas não o suficiente?)

HTML: HTML tem sido a espinha dorsal da web desde o seu início. À primeira vista, HTML pode parecer uma linguagem simples que se limita a definir títulos, parágrafos e links, mas na realidade, evoluiu para incorporar elementos mais avançados , como multimídia, formulários interativos com elementos de entrada e validação, armazenamento local…

1

CSS: Por outro lado, o CSS é responsável por dar estilo e formatação aos elementos HTML. Além de ser simplesmente um conjunto de instruções de exibição estáticas, CSS também envolve o uso de conceitos lógicos: as’media queries’são regras condicionais que permitem que as páginas da web se adaptem a diferentes tamanhos de tela e dispositivos. Eles até existiram explorações para vulnerabilidades do Mozilla Firefox baseadas exclusivamente em CSS.

2

Evidências insuficientes foram apresentadas até agora para classificar essas linguagens como Turing completa; portanto, permanece uma questão em aberto quanto ao seu status como linguagens de programação. Devemos agora examinar outros argumentos ou devemos concluir o nosso discurso sobre este assunto?

3 /images/a296f13f2e4e6a858a8f5989754dcf30e1019e4f2d7c442856a721d6bb56935d.jpg via r/ProgrammerHumor

Temos uma última testemunha, meritíssimo!

Durante a conferência Hack & Tell realizada em 2011, Eli Fox-Epstein, um desenvolvedor web, demonstrou um método para simular a Regra 110 utilizando CSS e HTML. A referida “Regra” é um modelo de autômato celular constituído por uma série de dígitos binários que sofrem transformações pré-determinadas, conforme formulado por Stephen Wolfram. Independentemente da sua complexidade mínima, foi estabelecido conclusivamente em 2004 que esta regra possuía a capacidade de realizar qualquer cálculo que pudesse ser realizado por um computador, conhecido como completude de Turing.

4

A simulação da Regra 110 em CSS é baseada na ideia de que código CSS pode representar o estado das células em um autômato celular, e interações de elementos HTML podem simular regras de transição da Regra 110. Cada etapa do autômato celular é executado por alterações no DOM (Document Object Model) e regras de estilo condicional são aplicadas em CSS para representar as alterações de estado.

5 SQL seria outra linguagem que normalmente não é considerada ‘programação’… e ainda assim permite programar a sequência de Fibonacci (Turing-complete)

O link fornecido inclui informações abrangentes, incluindo trechos de código, que permitem uma compreensão completa do experimento intrigante em questão.

6

O que nos interessa é que se um modelo de autômato celular Turing-completo pode ser simulado com CSS3 e HTML5, isso significa que, Se não ambas as linguagens, a soma de ambas pode ser considerada Turing-completa…e, portanto, um linguagem de programação completa.

7 Tudo isso não significa que HTML\+CSS seja(s) uma linguagem de’propósito geral', ou mesmo que seja(são) uma opção eficiente para implementação de algoritmos, mas tecnicamente permite a programação, e é isso que este artigo era sobre

Utilizando inteligência artificial, uma imagem é retratada por Marcos Merino, acompanhada de uma fotografia de Alan Turing de domínio público.

Nesta plataforma, você tem a oportunidade de utilizar uma ferramenta online versátil que permite proficiência em diversas linguagens de programação, apesar de ter conhecimento em apenas uma linguagem.

8

*️⃣ Link da fonte:

[seja"tão pendente"](https://softwareengineering.stackexchange.com/questions/28098/why-does-it-matter-that-html-and-css-are-not-programming-languages/28250# 28250) , computadores Enigma , consultas de mídia , explorações de vulnerabilidades do Mozilla Firefox , Regra 110 , este link ,