Subprogramas

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

Subprogramas

myaccmail00
Subprogramas podem ser passados como parâmetros em Lua? Qual seria o ambiente de referência do subprograma e os tipos de parâmetros são verificados em chamadas aos subprogramas passados?

Livre de vírus. www.avast.com.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Subprogramas

Eric Chiesse


Em ter, 28 de mai de 2019 às 17:16, A L <[hidden email]> escreveu:
Subprogramas podem ser passados como parâmetros em Lua?

Sim. São as funções.

Qual seria o ambiente de referência do subprograma

O escopo? Lua tem escopo de bloco mas também admite closures.
 
e os tipos de parâmetros são verificados em chamadas aos subprogramas passados?

Lua tem tipagem dinâmica, logo os tipos não são verificados na chamada.
 

Livre de vírus. www.avast.com.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAE%3Dv0fzLh-ikg_hbiSw3AgCc1ma-D2oSQA%2B_U2BokTQt6O2aug%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Subprogramas

myaccmail00
Os subprogramas podem ser sobrecarregados e genéricos? A definição de subprogramas pode aparecer em outras definições de subprogramas? A compilação separada ou independente é possível?

Em ter, 28 de mai de 2019 às 18:15, Eric Chiesse <[hidden email]> escreveu:


Em ter, 28 de mai de 2019 às 17:16, A L <[hidden email]> escreveu:
Subprogramas podem ser passados como parâmetros em Lua?

Sim. São as funções.

Qual seria o ambiente de referência do subprograma

O escopo? Lua tem escopo de bloco mas também admite closures.
 
e os tipos de parâmetros são verificados em chamadas aos subprogramas passados?

Lua tem tipagem dinâmica, logo os tipos não são verificados na chamada.
 

Livre de vírus. www.avast.com.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAE%3Dv0fzLh-ikg_hbiSw3AgCc1ma-D2oSQA%2B_U2BokTQt6O2aug%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAEJfAX8tZEAy2%3DyYNO0rt2wy-JVP-hQLZ5vSO22vB%3DBFEv_ODg%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Subprogramas

myaccmail00
  Os tipos dos parâmetros reais são verificados em relação aos tipos dos parâmetros formais?  

Em qua, 5 de jun de 2019 às 17:47, A L <[hidden email]> escreveu:
Os subprogramas podem ser sobrecarregados e genéricos? A definição de subprogramas pode aparecer em outras definições de subprogramas? A compilação separada ou independente é possível?

Em ter, 28 de mai de 2019 às 18:15, Eric Chiesse <[hidden email]> escreveu:


Em ter, 28 de mai de 2019 às 17:16, A L <[hidden email]> escreveu:
Subprogramas podem ser passados como parâmetros em Lua?

Sim. São as funções.

Qual seria o ambiente de referência do subprograma

O escopo? Lua tem escopo de bloco mas também admite closures.
 
e os tipos de parâmetros são verificados em chamadas aos subprogramas passados?

Lua tem tipagem dinâmica, logo os tipos não são verificados na chamada.
 

Livre de vírus. www.avast.com.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAE%3Dv0fzLh-ikg_hbiSw3AgCc1ma-D2oSQA%2B_U2BokTQt6O2aug%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/CAEJfAX8ACucgxXQto15v6sudRv4Mjouc2pZVuV1Pt6Nm9FOtxg%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Subprogramas

Denis Dos Santos Silva
In reply to this post by myaccmail00
via de regra linguagem de script* não tem suporte a verificação de tipo
existem algumas propostas para isso, mas, não é a proposta oficial da linguagem conforme o manual.

2.1 – Values and Types

Lua is a dynamically typed language. This means that variables do not have types; only values do. There are no type definitions in the language. All values carry their own type.

All values in Lua are first-class values. This means that all values can be stored in variables, passed as arguments to other functions, and returned as results.


*recentemente o php7.0.x+ adicionou esse suporte



Em terça-feira, 28 de maio de 2019 17:16:21 UTC-3, A L escreveu:
Subprogramas podem ser passados como parâmetros em Lua? Qual seria o ambiente de referência do subprograma e os tipos de parâmetros são verificados em chamadas aos subprogramas passados?

<a href="https://www.avast.com/sig-email?utm_medium=email&amp;utm_source=link&amp;utm_campaign=sig-email&amp;utm_content=webmail" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.avast.com%2Fsig-email%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFuftbSgu95389HmI-4V1nVL3tGJw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.avast.com%2Fsig-email%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFuftbSgu95389HmI-4V1nVL3tGJw&#39;;return true;"> Livre de vírus. <a href="https://www.avast.com/sig-email?utm_medium=email&amp;utm_source=link&amp;utm_campaign=sig-email&amp;utm_content=webmail" style="color:#4453ea" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.avast.com%2Fsig-email%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFuftbSgu95389HmI-4V1nVL3tGJw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.avast.com%2Fsig-email%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFuftbSgu95389HmI-4V1nVL3tGJw&#39;;return true;">www.avast.com.
<a href="#CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q@mail.gmail.com_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1" rel="nofollow" onmousedown="this.href=&#39;#CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q@mail.gmail.com_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2&#39;;return true;" onclick="this.href=&#39;#CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q@mail.gmail.com_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2&#39;;return true;">

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/2655523b-fbff-407f-92d8-bde2684b2a23%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Subprogramas

Denis Dos Santos Silva
In reply to this post by myaccmail00
  A compilação separada ou independente é possível?  

o processo de compilação é realizado pelo programa *luac e sim pode ter N arquivos, porém, é necessário ter alguns cuidados.

exemplo:
$ luac-5.1 test1.lua test2.lua main.lua
$ lua-5.1 luac.out
** test1
** test2

--- arquivo: test1.lua
function test1()
        print("** test1");
end

--- arquivo: test2.lua
function test2()
        print("** test2");
end

--- arquivo: main.lua
test1();
test2();


NOTAS:
1-a linguagem Lua (e demais de scripts) não gera código-nativo, mas, *chunk (como é chamado pelo próprio manual) que é interpretado pela maquina virtual.
2-a linguagem Lua não tem compatibilidade entre versões diferentes (4.0, 5.0, 5.1, 5.2, 5.3, ...) e tem que se ter algum cuidado a com coisas relacionadas a ABI / EABI 




Em terça-feira, 28 de maio de 2019 17:16:21 UTC-3, A L escreveu:
Subprogramas podem ser passados como parâmetros em Lua? Qual seria o ambiente de referência do subprograma e os tipos de parâmetros são verificados em chamadas aos subprogramas passados?

<a href="https://www.avast.com/sig-email?utm_medium=email&amp;utm_source=link&amp;utm_campaign=sig-email&amp;utm_content=webmail" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.avast.com%2Fsig-email%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFuftbSgu95389HmI-4V1nVL3tGJw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.avast.com%2Fsig-email%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFuftbSgu95389HmI-4V1nVL3tGJw&#39;;return true;"> Livre de vírus. <a href="https://www.avast.com/sig-email?utm_medium=email&amp;utm_source=link&amp;utm_campaign=sig-email&amp;utm_content=webmail" style="color:#4453ea" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.avast.com%2Fsig-email%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFuftbSgu95389HmI-4V1nVL3tGJw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.avast.com%2Fsig-email%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFuftbSgu95389HmI-4V1nVL3tGJw&#39;;return true;">www.avast.com.
<a href="#CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q@mail.gmail.com_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1" rel="nofollow" onmousedown="this.href=&#39;#CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q@mail.gmail.com_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2&#39;;return true;" onclick="this.href=&#39;#CAEJfAX-6Y3zf-eMegXER6HUVSTkoskfBBSqayj9hYVnhQgnA7Q@mail.gmail.com_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2&#39;;return true;">

--
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 ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/955fbdad-d0fa-4f5c-91e0-befac142144c%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.