As linguagens de script de nível superior usam scripts shell para funcionar?

1

Estou apenas aprendendo sobre o bash e quando vi que o bash usa o 'echo' eu tentei procurar o relacionamento entre o PHP e o bash e parece que as pessoas estão construindo programas que eram scripts bash e scripts PHP misturados.

As linguagens de script como Javascript e PHP usam scripts shell para funcionar? Os interpretadores PHP e Javascript dependem de algum modo dos scripts de shell?

Isso é diferente quando se trata de código compilado? (Eu sei que a separação das linguagens de script e das linguagens compiladas não é tão clara, já que você pode compilar o Javascript e interpretar algumas das linguagens que normalmente são compiladas. Então, nesta parte da pergunta, estou perguntando se há alguma diferença quando trata-se de código compilado, independentemente da linguagem.)

    
por Kriss 15.08.2014 / 17:06

2 respostas

2

Não há nenhuma relação entre "echo" no bash e "echo" no PHP. Eles simplesmente compartilham a mesma palavra-chave para a mesma ação, eles não dependem um do outro. Muitas vezes, o design de algumas linguagens influencia outras linguagens, e as que criam novos recursos de linguagens muitas vezes tomam inluência das linguagens existentes. É por isso que muitas linguagens usam $ prefixo para variáveis, porque algumas palavras-chave são comumente vistas em vários idiomas e porque muitos idiomas usam chaves para separação de blocos. Embora eles possam copiar a sintaxe ou o design geral do recurso, eles geralmente são implementados independentemente.

  

As linguagens de script como Javascript e PHP usam scripts shell para funcionar?   Os interpretadores PHP e Javascript dependem de algum modo dos scripts de shell?

Não, eles não usam scripts shell para funcionar. O shell e esses idiomas dependem da interface de gravação de fluxo do sistema operacional. Digamos que no Linux, se você quiser imprimir para stdout, você precisa fazer uma chamada do sistema write () para o kernel, causando uma interrupção de software com o id syscall para o write () syscall, o ponteiro para os dados que você deseja write, e o número do arquivo para stdout que é 1. Se você usar o shell, uma linguagem interpretada ou uma linguagem compilada, todos eles deverão chamar o syscall write () para gravar no stdout. Algumas linguagens podem permitir apenas que você escreva uma string regular, outras podem fornecer recursos básicos de formatação, mas todas elas terminarão com um syscall write ().

    
por Lie Ryan 15.08.2014 / 17:32
2

Eles não. A base de código por trás dos ambientes e bibliotecas de tempo de execução pode usar scripts de shell como cola, mas tempos de execução de linguagens como JavaScript e PHP não dependem deles. O uso de comandos como echo e printf são indicadores das linguagens pelas quais os criadores foram influenciados, como C e shell. Isso também vale para as linguagens compiladas.

Retroceda um momento e pense se a presença de construções como if e for e while significa que a execução de scripts de shell depende de C ou vice-versa.

    
por muru 15.08.2014 / 17:34