1 - Você sabe como as linguagens de programação são formadas? E como elas são compiladas e as etapas de do processo de compilação?

Segue o 🧵
2- Uma linguagem de programação é formada por um alfabeto que é o conjunto de todos os caracteres que podem ser aceitos naquela linguagem. Inclui letras, números e caracteres especiais. Quando você faz um programa na linguagem C por exemplo, você está escrevendo uma palavra +
3- da linguagem C. O número de palavras(programas) que eu posso gerar na linguagem C é infinito. Então linguagem de programação é o conjunto de programas que podem ser gerados por aquela linguagem. +
4- Eu falo um sobre isso a partir do minuto 18:29 do meu vídeo da playlists de teoria da computação bityli.com/WcCM7 Me desculpem a qualidade do vídeo. Eu era iniciante na época e precisava de jogar os vídeos de qualquer jeito para meus alunos acompanharem. +
5- Além disso, uma linguagem precisa de regras para que as palavras possam ser formadas. Essas regras seguem padrões sintáticos e semânticos como em qualquer outra linguagem. Essas regras são chamadas de gramáticas. Quer ver algumas gramáticas de linguagens conhecidas? +
6- Gramática do Javascript: Veja aqui no anexo A 262.ecma-international.org/5.1/

Gramática do Java: docs.oracle.com/javase/specs/j…

Gramática da linguagem C: lysator.liu.se/c/ANSI-C-gramm…

Para criar uma nova linguagem você precisa definir um alfabeto e uma gramática. +
7- Eu resumi muita coisa para a Thread não ficar grande. Mas eu falo um pouco mais sobre gramáticas aqui: bityli.com/PIsdu

Assistindo os vídeos da playlist de Teoria e Compiladores o entendimento de gramáticas fica um pouco mais tranquilo para ser digerido. +
8- Agora a gente precisa de um compilador para analisar as palavras (programas) da linguagem. Existem diversas classes de compiladores. Nesses vídeos eu mostro uma visão geral do processo de compilação: bityli.com/G9EBy +
9- As linguagens de programação modernas como Javascript, Python, Java e outras, independente se são linguagens interpretadas ou compiladas precisam de serem analisadas sintática e semânticamente para verificar se o que o programador digitou está de acordo +
10- com a gramática da linguagem. Por isso quando você está programando e te dá um erro, muitas vezes erros são sintáticos ou semânticos, ou seja, você está fazendo algo que não é permitido de acordo com a gramática da linguagem. +
11- O coração do processo de compilação é a análise sintática e semântica. Existem diversos algoritmos para esse processo, sendo o mais robusto e usado na maioria das linguagens o algoritmo parser LALR(1): bityli.com/3sqPb +
12- Mas para aprender o LALR(1) sugiro que assista sobre o algoritmo parser CLR(1) nos vídeos:

bityli.com/kNE0N
e

bityli.com/8bYQI
13- Para análise semântica queremos verificar se os valores que eu defini para cada variável estão recebendo os tipos corretos durante a programação. Esse processo é feito juntamente com o parser e se chama tradução dirigida por sintaxe:
14- Somente com a Thread você não vai pegar toda a fundação para aprender sobre compiladores e teoria da computação. Então sugiro ver os vídeos do meu canal, mais especificamente a playlist de Teoria e depois a playlist de compiladores link do meu canal: bityli.com/hpTOe
15- No meu canal eu sigo fielmente o conteúdo dos livros da área. Livros que recomendo para Teoria e Compiladores estão nas imagens. Quando estudamos essas disciplinas a nossa compreensão sobre computação e o entendimento de linguagens aumenta consideravelmente. Fim do 🧵

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Adriano Santos

Adriano Santos Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @adrianolcp

8 Jul
--Parte 2--
Thread sobre a carreira de professor, benefícios, plano de carreira, vantagens e desvantagens da profissão. (Essa é a parte final, ufa!). Espero que a leitura pelo twitter seja possível. Depois vou compilar em um blog. Segue o 🧵. 1/23
Nas universidades privadas de nome como PUC, FGV e outras universidades católicas e outras universidades de renome o salário do professor + benefícios é compatível com o plano de carreira das universidades públicas. 2/23
Os salários e benefícios são muito parecidos, isso se não for maior.
Entrentanto é bom ressaltar que existe pouca rotatividade nas universidades particulares. Isso porque o ambiente de trabalho acadêmico é bem mais tranquilo que outros ramos de atuação. 3/23
Read 23 tweets
8 Jul
Você ama ensinar algo na área de computação? E também ama aprender? Se sente realizado quando ensina programação para alguém? Então você pode ter uma carreira de professor na área de computação. Parte 1 (porque ficou grande essa thread).
Segue o🧵 1/17
Creio que antes de entrar em detalhes de quais passos seguir para se tornar um professor universitário é interessante conhecer os benefícios da carreira. Primeiro vamos falar da carreira no Brasil. 2/17
Tanto nas universidades públicas quanto as universidades privadas há bons salários (Compatíveis com o mercado). 3/17
Read 18 tweets
8 Jul
Eu entendo a mente dos devs de sp e sul do país em relação a desprezarem o ensino superior. Ora, uma vez que moram em regiões historicamente favorecidas. Esses devs antes da pandemia conseguiam empregos fácil sem faculdade, pq moravam em regiões com muito emprego e poucos +
Profissionais. Então fica fácil ganhar oportunidades.

O dev paulista e paulistano aqui no twitter não representa o Brasil. O Twitter tem 15 no máximo 20 mil profissionais de TI, entre devs e estagiários, gerentes, etc. Isso não é a quantidade de profissionais do Brasil +
São Paulo e o sul tem realidade muito melhores que o Brasil. Os IDHs são muito diferentes. Só a capital de SP tem metade da população de MG inteira.

Em cidades pequenas e capitais menores a universidade é a chance que uma pessoa tem de chegar na empresa para estágio e evoluir.+
Read 4 tweets
5 Jul
Semana passada decidi entrar em um processo seletivo. O objetivo é ver se consigo passar em um processo seletivo remoto em empresas da gringa.
Me inscrevi na Turing.com

Não há contato com recrutadores.

Primeiro é cadastrar o seu CV e escolher as suas skills
O próximo passo foi responder um questionário de 77 questões sobre soft skills e experiências de trabalho. Você tem 55 minutos para responder o questionário.

O próximo passo é um questionário das stacks que você escolheu trabalhar. Eu escolhi React + Node.js por já ter feito
Coisas nessa stack para a instituição que trabalho.

Sobre o questionário de Node.js (1 hora 57 questões) e React (45 min 57 questões).

Os questionários não são simples. Não é para desenvolvedor júnior entrando no mercado. As questões são profundas e exigem conhecimento
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(