Lua: Linguagem de Programação

Autor Mensagem
Mr. Joe
Veterano
# abr/10 · Editado por: Mr. Joe


function test(n)
if(n == 1) then
io.write(" Está tudo rodando corretamente?") end
end
test(1)
meu_usuario_cifraclub = 'Mr. Joe'
senha_anti_bot = 16-8
-- True Nerd. aheuaehuae
if(meu_usuario_cifraclub == 'Mr. Joe') then
io.write("\n Meu usuário é 'Mr. Joe'!")
end
if(senha_anti_bot == 8) then
io.write("\n Eba! 16 - 8 é = 8! Uau!")
end
if(1+1-1*1/1 == 1) then
-- Se 1+1-1x1/1 for "=1", então vou dar um print abaixo:
print("\n Um mais um, menos um, vezes um, dividido por um é igual a um!") end


Brinquei um pouco de Lua no compilador online no site oficial.
Alguém conhece essa linguagem?

Eu conheci ela faz anos, mas nunca tentei fazer nada com essa rica linguagem.

Alguém sabe como se compila em um ".exe"?
(sei que é uma linguagem interpretada, mas pode ser que nem Java: Você insere o Java junto com o programa em um ".exe")

Alguém sabe compiladores?
Como alguém roda algum programa?

Já baixei o Lua e compilei em C++, tentei usar, mas meu compilador (DEV) não aceita.

Mas enfim, quem não conhecia, é uma boa.
Se assemelha mto com php (Lua é linguagem de script tb).
Estrutural, bem boa de trabalhar. (odeio essas classes e bla bla bla. Matam o código do programa e vira uma confusão)

Foi usada no jogo World of Warcraft por ser simples de trabalhar.

Enfim (denovo), só mais um tópico sobre programação, para discutirmos sobre Lua e bla bla bla.

Estou procurando um servidor (http) que aceite ".lua".
Aí eu uso ela na web. Bem melhor que PHP. Tudo bem mais simples.
(apesar de serem bastante iguais)

Mr. Joe
Veterano
# abr/10 · Editado por: Mr. Joe
· votar


Pegando o nome de alguém:

io.write (" Qual seu nome, amiguinho? ")
name = io.read()
print (" Oi " .. name .. ", voce quer ser meu amiguinho?")

io.write(" \nAperte <Enter> para me amar para sempre e fechar essa merda...")
io.read()



Baixei o compilador, mas só sei fazer debug.
Dá pra se divertir bastante, hahaha!

highvoltage
Veterano
# abr/10
· votar


io.write(" \nAperte <Enter> para me amar para sempre e fechar essa merda...")
HUAHUAUAAUHUAHAUHUAHUAHUA

pelo jeito ninguém conhece não... eu fiz por um tempo um curso de progress, mas sai, eh dificil pra caralho...

L.A.M_Hard_Rock
Veterano
# abr/10
· votar


Aperte <Enter> para me amar para sempre e fechar essa merda.

Ah se fosse fácil assim.. aaaaaah..
/nerd_desiludido

ghostbastard
Veterano
# abr/10
· votar


eu já li sobre ela, já conhecia a sua existencia, mas como não trabalho com programação e to pensando em tentar aprender php, dificilmente conseguirei discutir algo com vc hehe.

Bog
Veterano
# abr/10
· votar


Mr. Joe

Eu usava Lua durante a faculdade. Conheci durante uma apresentação feita por um dos criadores (ela foi feita por brasileiros, no RJ). Eu lembro que num trabalho da disciplina de Computação Gráfica, fiz a parte gráfica e de interface em C++, e mantinha o estado do mundo e coisas como aceleração e posição da câmera em Lua. Me poupou um bom trabalho. Mas isso foi quase 10 anos atrás. Nem me lembro mais dos detalhes da linguagem.

Mr. Joe
Veterano
# abr/10 · Editado por: Mr. Joe
· votar


Bog
Me disseram que Lua realmente poupa bastante trabalho.
Interessante essa cadeira. "Computação Gráfica". É pelo que mais eu me interesso.

Qual faculdade tu fazias?

ghostbastard
PHP é meio idêntico a Lua por serem de script e estruturadas.
Declarar uma variável é praticamente idêntico, funções tb...

To tentando transferir um texto em PHP por socket para Um servidor em Lua. Parece ser bem fácil, mas a preguiça domina.

Geral
Um dia desses ainda crio um tópico aqui requisitando a nerdaiada pra faze um jogo em C e Lua, haha!

Alguém sabe qual linha eu uso pra compilar com o "lua.exe"?
É tipo um compilador de C (tipo aqueles mingx, alguma coisa assim de C) só q de Lua ...

To me virando aqui pra juntar C e Lua no DEV-C++.
Se alguém aí souber a resposta, posta por favor..

Bog
Veterano
# abr/10 · Editado por: Bog
· votar


Mr. Joe

Pois é, Lua foi uma mão na roda para fazer trabalhos na faculdade rapidinho.

Eu fiz a graduação na UFPR. Aliás, só esteja avisado: Computação Gráfica = Geometria Anaítica + Álgebra Linear. Não, não estou dizendo que "usa" GA e AL. Estou dizendo que *É*! O.o

Quanto ao compilador: ao menos na minha época, não tinha, ou se tinha eu não sabia. Eu sempre rodava como script mesmo, ou chamava de algum programa em C ou C++ usando aquele esquema de pilha de parâmetros. Talvez tenha mudado hoje. Mas é só procurar na documentação, não é?

Guilherme 90
Veterano
# abr/10
· votar


Esse é o assunto que eu gosto, aprendo demais lendo esses posts!
^^

Valeu.

Mr. Joe
Veterano
# abr/10 · Editado por: Mr. Joe
· votar


Bog
Aliás, só esteja avisado: Computação Gráfica = Geometria Anaítica + Álgebra Linear.

Quase desisti lendo isso. haeuaehueaa
Mas deve valer a pena o esforço estudando.

Bog

Quanto ao compilador: ao menos na minha época, não tinha, ou se tinha eu não sabia. Eu sempre rodava como script mesmo, ou chamava de algum programa em C ou C++ usando aquele esquema de pilha de parâmetros. Talvez tenha mudado hoje. Mas é só procurar na documentação, não é?


Documentação é tudo em inglês. Não que seja difícil, mas pra achar algo rápido não é tão simples, hehe. Vou tentar.

Hoje em dia tem uns projetos de tornar Lua uma linguagem tipo "C".
Não *só* de script.
Então criaram uns compiladores. Mas agora é difícil de achar por não serem oficiais.

Para compilar vou chamar pelo C mesmo. Acho que é algo tipo:
extern "C" { #include "lua.h" } ou "lua.cpp"... ou "lua.c", sei lá.
Deve ser algo assim.
Vou me virar aqui. :P

guilherme_90
Pois é, eu também. hehe.

Mr. Joe
Veterano
# abr/10
· votar


Olha só que interessante:
Sistema operacional feito na Linguagem de Programação Lua

Parece que não é somente uma simples linguagem de Script.

GProtti
Veterano
# abr/10
· votar


Mr. Joe
Não é feito SÒ em Lua, tem rotinas em C e muito provavelmente tem alguns trechos em assembly (mesmo que seja inline).

Guilherme 90
Veterano
# abr/10
· votar


Cade o Bog pra nos explicar as paradas ?
kkkkkkkkkkkkkkk
^^

izzystradlin
Veterano
# abr/10
· votar


tudo isso derivado do java, supremo como sempre... XD

GProtti
Veterano
# abr/10
· votar


tudo isso derivado do java, supremo como sempre..
EU RI (muito)

Mr. Joe
Veterano
# abr/10
· votar


GProtti
Óbviamente, para o funcionamento do Sistema Operacional precisa de Assembly. (que pode ser integrado ao código Lua).

Só que o criador do SO precisaria "codar" os ByteCodes do Lua.

C foi opcional. :P

Mr. Joe
Veterano
# abr/10
· votar


izzystradlin
Lua, pelo q sei, não foi derivada do Java. (até pq uma é estrutural e script, e a outra é bem diferente), e surgiram na mesma época, praticamente.

GProtti
Veterano
# abr/10
· votar


C foi opcional. :P
Foi não, lê direito.

Não daria para implementar alocação de memória e gerência das tabelas de página, por exemplo, em Lua. Tem que ter as rotinas em C por baixo.

froggy
Veterano
# abr/10
· votar


Mr. Joe
parece legal de manejar Lua,quais são os operadores?

eu estou aprendendo c++ na facul :]

Mr. Joe
Veterano
# abr/10 · Editado por: Mr. Joe
· votar


froggy
Os relacionais são
== | ~= | < | > | <= | >=
Basicamente.

Mas quais operadores você quer saber? Os lógicos?
Aritméticos?

=P

GProtti
Ele pode ter feito em Assembly mesmo.

EDIT:
Agora q li q ele fez em C. lol.

Bog
Veterano
# abr/10
· votar


Mr. Joe
Quase desisti lendo isso.

Heheh... Lembro no primeiro dia de aula o professor dizendo: "Ninguém aqui vai aprender a fazer deseinho. Se alguém queria isso, o curso certo é Design.".

Computação Gráfica é matemática pura. Todas as operações são implementadas a partir de operações com matrizes, resolução de sistemas lineares e coisas do tipo. Digo, você não precisa saber isso para USAR funções de CG para fazer um deseinho. Mas para um curso de computação, saber CG é (ou deveria ser) saber FAZER essas funções.

Documentação é tudo em inglês.

Estranho... Lua é brasileira. Quando eu usava, tinha toda a documentação em português também. Até o site oficial da linguagem tinha em inglês e português.

Mas de toda forma, trabalhar com computação sem saber inglês é uma enorme desvantagem - quase como ser um maratonista manco. O melhor a fazer é aprender, e aprender bem.

chamar pelo C mesmo

Não me lembro direito, mas era algo como incluir um header e chamar uma função usando uma pilha de parâmetros (não lembro se era em um array ou usando o parâmetro mágico "...").

izzystradlin
tudo isso derivado do java, supremo como sempre... XD

Putz cara, não viaja...

izzystradlin
Veterano
# abr/10
· votar


Bog

eu fui irônico, deixa de ser azedo...

Mr. Joe
Veterano
# abr/10
· votar


Bog

Opa, agora que achei a documentação em PT.
(tava na cara aehueahuea)
Aqui, ó!

O problema é que só explica Lua em geral, e não compiladores e tals.

Bog
Mas de toda forma, trabalhar com computação sem saber inglês é uma enorme desvantagem - quase como ser um maratonista manco. O melhor a fazer é aprender, e aprender bem.

O pior é que sei inglês bem, mas tenho preguiça de ler e interpretar (memorizar tb) bem. eahueahuae

Bog
Heheh... Lembro no primeiro dia de aula o professor dizendo:
"Ninguém aqui vai aprender a fazer deseinho. Se alguém queria isso, o curso certo é Design.".


aehuaehaeu.
Acho que vou primeiro Design mesmo, só pra fazer meus deseinhos. eahuaehueae

Então depois faço CG e comparo para ver o que "quero mesmo".

Vai ser uma boa perda de tempo se eu não gostar de nenhum, hahaha!

Só a definição de CG (principalmente o q está em negrito) no Wikipédia me assustou:
A computação gráfica é a área da ciência da computação que estuda a transformação dos dados em imagem. Esta aplicação estende-se à recriação visual do mundo real por intermédio de fórmulas matemáticas e algoritmos complexos.
haha

Mr. Joe
Veterano
# abr/10 · Editado por: Mr. Joe
· votar


Dei uma lida e para incluir Lua é algum bagulho assim (bem o q eu pensava, mais ou menos):


extern "C" {
#include "lua.h"
}

int main()
{
lua_State *L = lua_open();
lua_close(L);
return 0;
}


E no site oficial diz que precisa incluir mais dois headers dependendo do sistema:


extern "C" {
#include "lualib.h"
#include "lauxlib.h"
}
.

To chegando perto. haha

EDIT:
Que merda isso.
DEV-C++ dá erro toda hora que tento compilar o programa.

Só pq eu tinha conseguido fazer tudo certinho ='[

Vou floodar o forum oficial do Lua até conseguir ajuda.
(típico Brasileiro que não desiste nunca).

haeueahuae

EDIT AGAIN:

O erro é:
g++.exe -c hello.lua -o hello.o -l (caminho dos includes correto)
g++.exe: hello.lua: linker input file unsuded because linking not done
g++.exe main.o hello.o Project1_private.res -o "Project1.exe" -L "C:/Dev-Cpp/lib" -lLua -lLualib
g++.exe hello.o: No such file or directoy

Se algum nerd ajudante de plantão puder ajudar, não deixe de postar!
O compilador não acha o famoso "hello.o" (do hello.lua) sendo que era para ele mesmo criar.

Maldição!
Por isso me irrito com programação. Você faz tudo certo, até que alguma coisa bloqueia o progresso e trava todos seus projetos. haha

Guilherme 90
Veterano
# abr/10
· votar


izzystradlin

Tu vacilou, xarope!
kkkkkkkkkkkkkkkkkkkk

Guilherme 90
Veterano
# abr/10
· votar


Vamos continuar com o tópico, ta bem legal isso aqui!
Eu sempre lendo e aprendendo, isso é demais, adoro isso.

Valeu pessoal, é nois!

Guilherme 90
Veterano
# abr/10
· votar


Pessoal, é muito complicado criar uma linguagem de programação ?

Mr. Joe
Veterano
# abr/10
· votar


guilherme_90
Cara, já tive um projeto de criar a minha mesmo, e posso dizer:

Sempre tem alguém com o sonho de criar algo grande quando se aprende uma linguagem, um navegador, uma linguagem, o que seja: É muito difícil criar algo bom.

A verdade é que isso demora anos, requer equipes com grandes conhecedores das linguagens, e etc. E sozinho, é praticamente impossível.

Lua é feita em C, para você ter uma idéia, custou 17mil linhas de código sem contar com comentários e etc.

E olha que nem é uma linguagem complexa, e ela não é compilada diretamente para Assembly, então tem mais a programação do ByteCode e etc, que deve custar mais umas mil linhas.
Isso requer anos e uma equipe, disquetes, máquinas para testar em diversos processadores a linguagem (que será transformada para o Asm, caso compilada), e etc.

Mr. Joe
Veterano
# abr/10
· votar


Por isso é melhor você programar somente para Windows, Linux e Mac, programas scripts por cima de navegadores, skins, e etc.

Sonhar com algo grande é uma decepção, digo isso por já ter tentado de praticamente tudo.
Você tenta, sua, cansa, e no final fica uma grande bosta quando se compara com algo grande mesmo.

Guilherme 90
Veterano
# abr/10
· votar


Mr. Joe

Nossa cara, adorei o post seu.
^^

Muito explicado, e como você disse, sozinho é quase impossivel mesmo, porque é muita coisa pra uma pessoa só. Mas como que 'cria' a linguagem ? Vai criando seus próprios códigos no programa, como que funfa isso ?

Tipo, voce cria um código e escreve pra que serve isso, e depois vai registrando..?

Enviar sua resposta para este assunto
        Tablatura   
Responder tópico na versão original
 

Tópicos relacionados a Lua: Linguagem de Programação