SlideShare uma empresa Scribd logo
26 e 27 de Agosto, 2014
Transamérica Expo Center, São Paulo/SP
Lua em Sistemas
Embarcados
Linux
Vinicius Zein – Fundação CERTI
Fundação CERTI - Direitos Reservados
Quem somos
• Vinicius Zein
• Coordenador da Área de Sistemas
Embarcados, Centro de Convergência
Digital da Fundação CERTI
Fundação CERTI - Direitos Reservados
Quem somos
• Instituição de Pesquisa, Tecnologia e Inovação
• Criada em 1984 com a missão de desenvolver soluções
tecnológicas para produtos e processos
• Possui cerca de 500 colaboradores no grupo
• Privada, que reinveste o resultado em P&D
• Credenciada no MCTI e SUFRAMA, estando apta a
captar projetos de Lei de Informática, Lei do Bem e
Cooperação Internacional
• Mais de 500 empresas clientes no Brasil e exterior
• Crescimento de mais de 20% ao ano nos últimos 5 anos
• Reconhecimento e conquista de diversos prêmios,
como o Prêmio FINEP Nacional
Fundação CERTI - Direitos Reservados
Agenda
• O quê é Lua?
• Lógica de negócios em Lua
• Integração Lua e C++
• Lua em sistemas embarcados:
vantagens e desvantagens
• Testes em Lua
Fundação CERTI - Direitos Reservados
O quê é Lua?
Fundação CERTI - Direitos Reservados
O quê é Lua?
Fonte: http://www.lua.org/
Fundação CERTI - Direitos Reservados
Onde está a Lua?
Fundação CERTI - Direitos Reservados
Onde está a Lua?
Fundação CERTI - Direitos Reservados
Onde está a Lua?
Fundação CERTI - Direitos Reservados
Onde está a Lua?
Fundação CERTI - Direitos Reservados
Business Logic with script
• Motivação:
• Processo de desenvolvimento e.g.
em C++:
1. Alterar código
2. Compilar
3. Deploy
Fundação CERTI - Direitos Reservados
Business Logic with script
• Processo de desenvolvimento com
script:
1. Alterar código
2. Compilar
3. Deploy
Fundação CERTI - Direitos Reservados
Business Logic with script
• Linguagens de script são simples de
se apreender
• Menor complexidade
• Importante
• Precisa ser integrável à linguagem
compilada (C, C++)
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Por que Lua?
Fundação CERTI - Direitos Reservados
Porque Lua é leve
Fundação CERTI - Direitos Reservados
… robusta e estabelecida
Fundação CERTI - Direitos Reservados
… portátil e livre
Fundação CERTI - Direitos Reservados
e também poderosa
• permite orientação a objetos
• permite estender aplicações em
outras linguagens
• pode ser estendida por bibliotecas
escritas em outras linguagens
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
• Exemplo 1
– User interface do Set-Top Box CERTI
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
• Exemplo 2
– Modificação do menu do STB Certi
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
• Exemplo 1
– Modificação do menu do STB Certi
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
• Exemplo 3
– Modificação da interface do IP Phone
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
• Exemplo 2
– Modificação da interface do IP Phone
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Fundação CERTI - Direitos Reservados
Business Logic with script Lua
Fundação CERTI - Direitos Reservados
Integração Lua e C++
Linux
Módulo C++ Módulo C++ Módulo C++ Módulo C++
Lua
Bind
Bind
Bind
Bind
Fundação CERTI - Direitos Reservados
Integração Lua e C++
• 2 flavors
– Aplicação C++ inicializa scripts Lua
– Script Lua carrega biblioteca nativa
• É possível ter a combinação dos
dois
Fundação CERTI - Direitos Reservados
Integração Lua e C++
• Aplicação C++ inicializa máquina
Lua
• lua_State *lua_newstate (lua_Alloc f, void
*ud);
• void luaL_openlibs (lua_State *L);
• int luaL_dofile (lua_State *L, const char
*filename);
• int lua_pcall (lua_State *L, int nargs, int
nresults, int msgh);
• void lua_close (lua_State *L);
Fundação CERTI - Direitos Reservados
Integração Lua e C++
• Inicialização da máquina Lua
Fundação CERTI - Direitos Reservados
Integração Lua e C++
• Bind para ser usado em Lua
Fundação CERTI - Direitos Reservados
Integração Lua e C++
• Bind para ser usado em Lua
Fundação CERTI - Direitos Reservados
Integração Lua e C++
Fundação CERTI - Direitos Reservados
Integração Lua e C++
Fundação CERTI - Direitos Reservados
Integração Lua e C++
Fundação CERTI - Direitos Reservados
Integração Lua e C++
• Biblioteca C++ (?) em Lua
Fundação CERTI - Direitos Reservados
Lua e C++ - Vantagens
• Flexibilidade
• Separation of concerns
• Facilidade de reuso dos binds
• Facilidade de criar mocks e testes
• Facilidade de criar spikes
Fundação CERTI - Direitos Reservados
Lua e C++ - Atenção!
• GC Lua não vê recursos alocados
em objetos C++
• Conversão de tipos C++ em tipos
Lua e vice-versa
• Lua é single thread
Fundação CERTI - Direitos Reservados
Testes
• Testes unitários em Lua
• Uso de scripts para testar os binds
em C++
• Rodar testes em servidor de CI
Fundação CERTI - Direitos Reservados
Teste unitário - Lunity
Fundação CERTI - Direitos Reservados
Links úteis
www.lua.org
site principal para todas as coisas
Lua
lua-users.org/wiki/
wiki da comunidade Lua
www.lua.org/lua-l.html
Lua mailing list
Fundação CERTI - Direitos Reservados
Perguntas?
Fundação CERTI - Direitos Reservados
Vinicius Zein
vtz@certi.org.br

Mais conteúdo relacionado

PDF
c++-esc-brazil-presentation_v1.0
PPTX
Etiquetas
PPTX
Asilo Politico Bolivia - Brasil
PPS
10sugest linda
PDF
Conta me o teu Passado e usa-o para Moldar o teu Futuro
DOC
15-03-2012 El Gobernador Guillermo Padrés a favor de la construcción del Acue...
PPTX
PPTX
Calderoncumacjuaandreas
c++-esc-brazil-presentation_v1.0
Etiquetas
Asilo Politico Bolivia - Brasil
10sugest linda
Conta me o teu Passado e usa-o para Moldar o teu Futuro
15-03-2012 El Gobernador Guillermo Padrés a favor de la construcción del Acue...
Calderoncumacjuaandreas

Destaque (9)

PPTX
Internet como derecho fundamental
PPTX
ACCIÓN DE TUTELA
PDF
Apresentação abreu ambiental 1
PDF
Gestion de la calidad en el deporte
PDF
26 dicas mais saúde
PDF
Cap5 mi autos
PDF
Curso Águas e Urbanismo - Palestra do Engenheiro Roberto Massaru Watanabe re...
PDF
Far112 capítulo 6-v2
PPTX
Frio y calor
Internet como derecho fundamental
ACCIÓN DE TUTELA
Apresentação abreu ambiental 1
Gestion de la calidad en el deporte
26 dicas mais saúde
Cap5 mi autos
Curso Águas e Urbanismo - Palestra do Engenheiro Roberto Massaru Watanabe re...
Far112 capítulo 6-v2
Frio y calor
Anúncio

Semelhante a lua-esc-brazil-2014-presentation (12)

PDF
eLua - Lua for Microcontrollers
PDF
TDC2016SP - Trilha Embarcados
PDF
A Linguagem de Programação Lua-uma linguagem de programação poderosa e leve
PPTX
Seminário: Lua
PDF
A Evolução de Lua (Pycon Brasil 2008)
PPTX
Apresentação sobre a linguagem lua
PPTX
Curso Corona SDK - Módulo 2
PPT
A Linguagem Lua - Uma abordagem inicial
PDF
Carreira Linux
PPT
A Linguagem Lua e suas Aplicações em Jogos
PDF
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
PDF
apostila linux
eLua - Lua for Microcontrollers
TDC2016SP - Trilha Embarcados
A Linguagem de Programação Lua-uma linguagem de programação poderosa e leve
Seminário: Lua
A Evolução de Lua (Pycon Brasil 2008)
Apresentação sobre a linguagem lua
Curso Corona SDK - Módulo 2
A Linguagem Lua - Uma abordagem inicial
Carreira Linux
A Linguagem Lua e suas Aplicações em Jogos
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
apostila linux
Anúncio

lua-esc-brazil-2014-presentation

  • 1. 26 e 27 de Agosto, 2014 Transamérica Expo Center, São Paulo/SP Lua em Sistemas Embarcados Linux Vinicius Zein – Fundação CERTI
  • 2. Fundação CERTI - Direitos Reservados Quem somos • Vinicius Zein • Coordenador da Área de Sistemas Embarcados, Centro de Convergência Digital da Fundação CERTI
  • 3. Fundação CERTI - Direitos Reservados Quem somos • Instituição de Pesquisa, Tecnologia e Inovação • Criada em 1984 com a missão de desenvolver soluções tecnológicas para produtos e processos • Possui cerca de 500 colaboradores no grupo • Privada, que reinveste o resultado em P&D • Credenciada no MCTI e SUFRAMA, estando apta a captar projetos de Lei de Informática, Lei do Bem e Cooperação Internacional • Mais de 500 empresas clientes no Brasil e exterior • Crescimento de mais de 20% ao ano nos últimos 5 anos • Reconhecimento e conquista de diversos prêmios, como o Prêmio FINEP Nacional
  • 4. Fundação CERTI - Direitos Reservados Agenda • O quê é Lua? • Lógica de negócios em Lua • Integração Lua e C++ • Lua em sistemas embarcados: vantagens e desvantagens • Testes em Lua
  • 5. Fundação CERTI - Direitos Reservados O quê é Lua?
  • 6. Fundação CERTI - Direitos Reservados O quê é Lua? Fonte: http://www.lua.org/
  • 7. Fundação CERTI - Direitos Reservados Onde está a Lua?
  • 8. Fundação CERTI - Direitos Reservados Onde está a Lua?
  • 9. Fundação CERTI - Direitos Reservados Onde está a Lua?
  • 10. Fundação CERTI - Direitos Reservados Onde está a Lua?
  • 11. Fundação CERTI - Direitos Reservados Business Logic with script • Motivação: • Processo de desenvolvimento e.g. em C++: 1. Alterar código 2. Compilar 3. Deploy
  • 12. Fundação CERTI - Direitos Reservados Business Logic with script • Processo de desenvolvimento com script: 1. Alterar código 2. Compilar 3. Deploy
  • 13. Fundação CERTI - Direitos Reservados Business Logic with script • Linguagens de script são simples de se apreender • Menor complexidade • Importante • Precisa ser integrável à linguagem compilada (C, C++)
  • 14. Fundação CERTI - Direitos Reservados Business Logic with script Lua Por que Lua?
  • 15. Fundação CERTI - Direitos Reservados Porque Lua é leve
  • 16. Fundação CERTI - Direitos Reservados … robusta e estabelecida
  • 17. Fundação CERTI - Direitos Reservados … portátil e livre
  • 18. Fundação CERTI - Direitos Reservados e também poderosa • permite orientação a objetos • permite estender aplicações em outras linguagens • pode ser estendida por bibliotecas escritas em outras linguagens
  • 19. Fundação CERTI - Direitos Reservados Business Logic with script Lua • Exemplo 1 – User interface do Set-Top Box CERTI
  • 20. Fundação CERTI - Direitos Reservados Business Logic with script Lua
  • 21. Fundação CERTI - Direitos Reservados Business Logic with script Lua • Exemplo 2 – Modificação do menu do STB Certi
  • 22. Fundação CERTI - Direitos Reservados Business Logic with script Lua • Exemplo 1 – Modificação do menu do STB Certi
  • 23. Fundação CERTI - Direitos Reservados Business Logic with script Lua
  • 24. Fundação CERTI - Direitos Reservados Business Logic with script Lua
  • 25. Fundação CERTI - Direitos Reservados Business Logic with script Lua
  • 26. Fundação CERTI - Direitos Reservados Business Logic with script Lua
  • 27. Fundação CERTI - Direitos Reservados Business Logic with script Lua • Exemplo 3 – Modificação da interface do IP Phone
  • 28. Fundação CERTI - Direitos Reservados Business Logic with script Lua • Exemplo 2 – Modificação da interface do IP Phone
  • 29. Fundação CERTI - Direitos Reservados Business Logic with script Lua
  • 30. Fundação CERTI - Direitos Reservados Business Logic with script Lua
  • 31. Fundação CERTI - Direitos Reservados Business Logic with script Lua
  • 32. Fundação CERTI - Direitos Reservados Integração Lua e C++ Linux Módulo C++ Módulo C++ Módulo C++ Módulo C++ Lua Bind Bind Bind Bind
  • 33. Fundação CERTI - Direitos Reservados Integração Lua e C++ • 2 flavors – Aplicação C++ inicializa scripts Lua – Script Lua carrega biblioteca nativa • É possível ter a combinação dos dois
  • 34. Fundação CERTI - Direitos Reservados Integração Lua e C++ • Aplicação C++ inicializa máquina Lua • lua_State *lua_newstate (lua_Alloc f, void *ud); • void luaL_openlibs (lua_State *L); • int luaL_dofile (lua_State *L, const char *filename); • int lua_pcall (lua_State *L, int nargs, int nresults, int msgh); • void lua_close (lua_State *L);
  • 35. Fundação CERTI - Direitos Reservados Integração Lua e C++ • Inicialização da máquina Lua
  • 36. Fundação CERTI - Direitos Reservados Integração Lua e C++ • Bind para ser usado em Lua
  • 37. Fundação CERTI - Direitos Reservados Integração Lua e C++ • Bind para ser usado em Lua
  • 38. Fundação CERTI - Direitos Reservados Integração Lua e C++
  • 39. Fundação CERTI - Direitos Reservados Integração Lua e C++
  • 40. Fundação CERTI - Direitos Reservados Integração Lua e C++
  • 41. Fundação CERTI - Direitos Reservados Integração Lua e C++ • Biblioteca C++ (?) em Lua
  • 42. Fundação CERTI - Direitos Reservados Lua e C++ - Vantagens • Flexibilidade • Separation of concerns • Facilidade de reuso dos binds • Facilidade de criar mocks e testes • Facilidade de criar spikes
  • 43. Fundação CERTI - Direitos Reservados Lua e C++ - Atenção! • GC Lua não vê recursos alocados em objetos C++ • Conversão de tipos C++ em tipos Lua e vice-versa • Lua é single thread
  • 44. Fundação CERTI - Direitos Reservados Testes • Testes unitários em Lua • Uso de scripts para testar os binds em C++ • Rodar testes em servidor de CI
  • 45. Fundação CERTI - Direitos Reservados Teste unitário - Lunity
  • 46. Fundação CERTI - Direitos Reservados Links úteis www.lua.org site principal para todas as coisas Lua lua-users.org/wiki/ wiki da comunidade Lua www.lua.org/lua-l.html Lua mailing list
  • 47. Fundação CERTI - Direitos Reservados Perguntas?
  • 48. Fundação CERTI - Direitos Reservados Vinicius Zein vtz@certi.org.br