Passando estruturas de C para LUA.

classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Passando estruturas de C para LUA.

Alex Queiroz
Olá,

On 18/07/17 17:48, wederson cabral wrote:

>
> Acho que eu acabei deixando confuso sobre o que é meu projeto,
> basicamente todo ele será feito em C, Lua entra apenas para montar a
> forma gráfica de uma arvore já gerado e preenchida pelo código C. Meu
> objetivo é: Depois do código C gerar e preencher a árvore com valores,
> eu tenho que passar esse valores para Lua, através da pilha mesmo ou de
> um arquivo de texto, Lua pega esse valores e exibe a arvore através do
> toolkit gráfico IUP. A abordagem atual que estou utilizando é: Preencher
> uma tabela Lua com os valores da árvore(Passando os valores no percurso
> pré-ordem) depois utilizar esses valores para remontar a arvore e ai sim
> plotar ela. A minha duvida inicial era se existia uma forma mais prática
> de passar esses valores da arvore C para Lua 'de uma vez' sem ser valor
> por valor.
>

Depende da suas opções:

Usando a pilha
 : Nesse caso seria necessário escrever código C para colar sua árvore
 com o interpretador Lua. Voce não precisaria passar os valores de C
para Lua um por um, mas para uma tarefa que voce só queira fazer uma
vez, pode ser um esforço que não se paga.

Usando um arquivo texto
 : Nessa situação vai ser necessário ler seus valores um por um porque o
interpretador Lua precisa transformar o texto em dados antes de criar a
árvore na memória. Mais simples mas o resultado é mais lento, o que pode
não ser um problema se voce não vai fazer isso com muita frequencia.

E eu repito a sugestão de evitar top posting.

--
-alex
http://unendli.ch/

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Visite este grupo em https://groups.google.com/group/lua-br.
Para obter mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Passando estruturas de C para LUA.

Georger Araujo
In reply to this post by wederson cabral
Em terça-feira, 18 de julho de 2017 12:48:39 UTC-3, wederson cabral escreveu:
Obrigado por responder!

Acho que eu acabei deixando confuso sobre o que é meu projeto, basicamente todo ele será feito em C, Lua entra apenas para montar a forma gráfica de uma arvore já gerado e preenchida pelo código C. Meu objetivo é: Depois do código C gerar e preencher a árvore com valores, eu tenho que passar esse valores para Lua, através da pilha mesmo ou de um arquivo de texto, Lua pega esse valores e exibe a arvore através do toolkit gráfico IUP. A abordagem atual que estou utilizando é: Preencher uma tabela Lua com os valores da árvore(Passando os valores no percurso pré-ordem) depois utilizar esses valores para remontar a arvore e ai sim plotar ela. A minha duvida inicial era se existia uma forma mais prática de passar esses valores da arvore C para Lua 'de uma vez' sem ser valor por valor. 


A forma mais prática é usar a API C de Lua, porque você precisaria escrever um único programa Lua que faz interface com as funções C, sem ter que se preocupar em como serializar de um lado e desserializar do outro.

Se seu professor determinou que a entrada das chaves e as operações sobre a árvore sejam feitas em um programa C, eu sugiro que ao final de cada rodada o programa escreva um arquivo de imagem. Pode usar, por exemplo, a biblioteca GD [1].

Se fizer questão de usar Lua, eu sugiro que escreva dois programas:
- O primeiro (em C) monta a árvore e ao final da execução serializa em um arquivo texto;
- O segundo (em Lua) desserializa e desenha a árvore. O IUP me parece superdimensionado para essa tarefa, cogite fazer em algo mais simples como LÖVE [2]. Exemplos de como desenhar texto [3] e formas [4].

[1] https://github.com/libgd/libgd
[2] https://love2d.org/
[3] https://github.com/pkulchenko/ZeroBraneEduPack/tree/master/LOVE-samples/hello
[4] https://github.com/pkulchenko/ZeroBraneEduPack/tree/master/LOVE-samples/trajectory

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Passando estruturas de C para LUA.

Denis Dos Santos Silva
In reply to this post by wederson cabral
as vezes, o que vai restar, vai ser, serialização!
 

Em domingo, 16 de julho de 2017 10:29:13 UTC-3, wederson cabral escreveu:
Bom dia!

Meu objetivo é passar uma estrutura de arvore(AVL) para Lua, com intenção de mostrar ela de forma gráfica através do Toolkit gráfico IUP.

Eu pensei diversas formas de fazer o mencionado na linha anterior, passar os números informando seu nível, passar todos números no percurso pré-ordem e montar a arvore em Lua mesmo, colocar num arquivo, ou String, o formato 'escrito' da arvore(aquela que usa {} pra definir quem é filho de quem), mas.. nenhuma dessas soluções pareceu 'elegante' de se fazer, todas tem meio que cara de 'gambiarra', e no final das contas eu teria que passar numero a numero de C para LUA com alguns meta dados para identificar onde cada numero está na arvore.

Eu ainda sou um programador iniciante, de certa forma, entendo bem de C e já tenho um bom conhecimento de Lua, mas é a primeira vez que estou fazendo a integração das duas em um projeto grande, de certa forma. 

Então eu gostaria de saber de vocês, desenvolvedores mais experientes, se existe algum padrão, ou quem sabe funcionalidade, para passar estruturas de dados de C para Lua, não só a arvore, que é meu objetivo, mas vetores, matrizes, filas e etc. Pelo o que estou vendo parece que a única forma é realmente passar numero a numero, ou passar todos juntos numa String.

TL:DR
Preciso saber se existe uma forma mais simples de passar estruturas de dados de C para Lua sem que seja valor a valor ou uma enorme String contendo todos valores.

Des dê já obrigado pela atenção !

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Passando estruturas de C para LUA.

wederson cabral
In reply to this post by wederson cabral
Queria agradecer a todos que responderam o tópico, eu vim aqui com uma duvida simples e acabei aprendendo bastante coisa, muito além do que eu estava esperando. Com certeza vou testar todas soluções apresentadas aqui, mesmo não podendo as aderir ao meu projeto, tenho certeza que irão agregar muito meu conhecimento. Então fica aqui o meu agradecimento a todos que tentaram me ajudar respondendo esse tópico, nunca me decepciono ao vir buscar ajuda aqui!

Em domingo, 16 de julho de 2017 10:29:13 UTC-3, wederson cabral escreveu:
Bom dia!

Meu objetivo é passar uma estrutura de arvore(AVL) para Lua, com intenção de mostrar ela de forma gráfica através do Toolkit gráfico IUP.

Eu pensei diversas formas de fazer o mencionado na linha anterior, passar os números informando seu nível, passar todos números no percurso pré-ordem e montar a arvore em Lua mesmo, colocar num arquivo, ou String, o formato 'escrito' da arvore(aquela que usa {} pra definir quem é filho de quem), mas.. nenhuma dessas soluções pareceu 'elegante' de se fazer, todas tem meio que cara de 'gambiarra', e no final das contas eu teria que passar numero a numero de C para LUA com alguns meta dados para identificar onde cada numero está na arvore.

Eu ainda sou um programador iniciante, de certa forma, entendo bem de C e já tenho um bom conhecimento de Lua, mas é a primeira vez que estou fazendo a integração das duas em um projeto grande, de certa forma. 

Então eu gostaria de saber de vocês, desenvolvedores mais experientes, se existe algum padrão, ou quem sabe funcionalidade, para passar estruturas de dados de C para Lua, não só a arvore, que é meu objetivo, mas vetores, matrizes, filas e etc. Pelo o que estou vendo parece que a única forma é realmente passar numero a numero, ou passar todos juntos numa String.

TL:DR
Preciso saber se existe uma forma mais simples de passar estruturas de dados de C para Lua sem que seja valor a valor ou uma enorme String contendo todos valores.

Des dê já obrigado pela atenção !

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
12