um podcast de divulgação científica
[https://www.youtube.com/watch?v=aZ70hwdU6b8]{.underline}
[Host: Adolfo Neto (UTFPR)]{.mark}
[Co-host: Ingrid Nunes (UFRGS)]{.mark}
Equipe: Danilo Ribeiro (Zup), Leonardo Fernandes (IFAL), Fabio Petrillo (Univ. Quebec), Gustavo Pinto (UFPA)
Início: 13:20
[[ADOLFO] Hoje no Fronteiras da Engenharia de Software vamos conversar com Gustavo Soares, da Microsoft Research, sobre síntese de programas e outros temas.]{.mark}
[[ADOLFO] Tudo bem, Gustavo? Você pode se apresentar para as pessoas que nos escutam?]{.mark}
[[INGRID]]{.mark} Gustavo, você teria uma definição simples sobre o que é síntese de programas?
[[ADOLFO]]{.mark} Existem exemplos práticos concretos da aplicação da síntese de programas para resolver problemas, não se limitando à Engenharia de Software?
[[INGRID]]{.mark} E agora focando na área de Engenharia de Software e também Linguagens de Programação, quais são os principais problemas que são atacados? Existe alguma ferramenta ou funcionalidade de ferramenta que use técnicas de síntese de programas, e a gente, como usuário, acaba não sabendo?
[[ADOLFO]]{.mark} Então a área de de síntese de programas envolve vários desafios como, por exemplo, conhecer a intenção do usuário, como conhecer técnicas de busca. Quais são essas várias dimensões relacionadas com a síntese de programas?
[[INGRID]]{.mark} Parece que a síntese de programas é uma área que vem sendo explorada desde a época de Alonzo Church. Essas dimensões que você falou são as mesmas desde a concepção da área de síntese de programas? Você pode nos dar um panorama como a área evoluiu ao longo do tempo?
// link curso Armando Solar sobre Síntese de Programas: [https://people.csail.mit.edu/asolar/SynthesisCourse/index.htm]{.mark}
[[ADOLFO]]{.mark} O termo "síntese" parece ser bem explorado em
áreas como interação humano computador e inteligência artificial e, mais
recentemente e especificamente, com deep learning. Há alguma relação
entre a abordagem de síntese de programas que é trabalhada nessas
diferentes áreas a inteligência artificial, com os trabalhos da
comunidade de engenharia de software/linguagem de programação? Ou são
termos similares para problemas diferentes?
[[INGRID]]{.mark} E quais os futuras direções para a área de síntese de programas? Tem uma survey da Microsoft publicada em 2017 sobre a área, onde vários problemas são listados como debuggability e entradas multi-modais. Esses problemas continuam em aberto?
// Cortar comentário do Gustavo às 13:51 e conversa entre nós para retomar
[[ADOLFO]]{.mark} Focando agora no seu trabalho na Microsoft, algumas das suas ideias e pesquisas em sínteses de programa têm sido incorporadas em ferramentas da Microsoft? Você poderia compartilhar exemplos?
[[INGRID]]{.mark} Pesquisa envolve descoberta, então normalmente é algo que não pode ser planejado de forma muito antecipada porque dependendo de resultados podemos seguir diferentes caminhos. E como é o ciclo de desenvolvimento no contexto de pesquisa no seu contexto? Qual é o caminho que um protótipo precisa pra ganhar forma até ser feito o deploy para milhares de usuários?
[[ADOLFO]]{.mark} E como entram as publicações neste ciclo de desenvolvimento? Por exemplo, em 2019 você foi co-autor do artigo "On the fly synthesis of edit suggestions", já como pesquisador da Microsoft. Aproveitando, você poderia falar um pouco mais sobre esse trabalho?
[[INGRID]]{.mark} As ferramentas que você desenvolve são colocadas em produção e usadas massivamente pelos desenvolvedores da Microsoft? Se sim, qual o feedback você tem recebido?
[[ADOLFO]]{.mark} Gustavo, você fez boa parte do seu treinamento (graduação, mestrado e doutorado) e também atuou como professor na UFCG por alguns anos. Hoje você é pesquisador na Microsoft research. O que motivou você a fazer essa transição?
[[INGRID]]{.mark} A gente falou sobre artigos…você ainda busca
colocar os resultados da sua pesquisa em artigos publicados nos
periódicos e conferências da área ou isso não é importante? Como hoje é
sua interação com o mundo acadêmico?
[[INGRID]]{.mark} Em geral, como professores, a gente pode deixar a nossa agenda de pesquisa caminhar de acordo com a nossa curiosidade. Mas como pesquisador em uma empresa, como você concilia os seus interesses e curiosidades de pesquisa com a necessidade de entregar valor para a Microsoft?
[[ADOLFO] Gustavo, para você, qual é a próxima fronteira da engenharia de software? (pode ser algo que você acha que vai acontecer ou que você gostaria que acontecesse em nossa área)]{.mark}
[Adolfo agradece e passa para Gustavo.]{.mark}
[Ingrid fecha o episódio.]{.mark}
FINAL: 14:34
Síntese de programas com Gustavo Soares, pesquisador na Microsoft Research
Conversamos com Gustavo Soares, pesquisador na Microsoft Research.
Sites de Gustavo
[https://www.microsoft.com/en-us/research/people/gsoares/]{.underline}
[https://scholar.google.com.br/citations?user=MwfgMR0AAAAJ&hl=pt-BR]{.underline}
Links Citados
[https://people.csail.mit.edu/asolar/SynthesisCourse/index.htm]{.underline}
[https://www.microsoft.com/en-us/research/publication/program-synthesis/]{.underline}