Lua: Linguagem de Programação

Autor Mensagem
Guilherme 90
Veterano
# abr/10
· votar


Mr. Joe

Entendo seu lado, agora imagina o TRABALHO que a Microsoft teve pra criar suas linguagens, tenso não ?

Guilherme 90
Veterano
# abr/10
· votar


Sabe cara, eu tenho vontade de criar uma linguagem de programação SIM, mas para isso eu preciso ter MUITO conhecimento e ter uma equipe foda que está disposta a levar isso a SÉRIO.

Tu ja tentou mesmo criar uma linguagem de programação, e não deu em NADA ?

Mr. Joe
Veterano
# abr/10
· votar


guilherme_90
Nossa cara, adorei o post seu.
^^


Valeu :D


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..?


Basicamente sim. Você vai registrando o que o código que você cria faz.

Parece simples, mas você tem que caracterizar coisas difíceis, tipo:

"Essa função no código, retorna True? False? 1? 0?"
"Ela vai dar um print na tela? Como? Em qual posição? Quando? Qual o delay?"

Você pode criar por cima de qualquer linguagem: Java, C, Assembly, e até mesmo de web, tipo PHP e ASP (Ruby tb, Perl, e etc)

Mais que isso não sei se posso responder, até pq nunca criei uma complexa, haha. Só criei uma de script web por cima de PhP que ficou uma droga, e tava na cara que era um "php modificado" eahuaaue.
Eu tinha pego o código source do php e modifiquei os headers. Ficou uma merda. ahueahaeuae

Burning Aces
Veterano
# abr/10 · Editado por: Burning Aces
· votar


guilherme_90

É.

EDIT:
Nem vi que mó galera já tinha respondido.
Ignore.

Mr. Joe
Veterano
# abr/10
· votar


guilherme_90
Entendo seu lado, agora imagina o TRABALHO que a Microsoft teve pra criar suas linguagens, tenso não ?

Com dim-dim eu posso mandar fazer a linguagem do Papa.
eaheauhaue.

Bill Gates podia "comprar" os melhores técnicos, que eram Engenheiros de Eletrônica, Cientistas da Computação, programadores que fizeram coisas bárbaras...

Imagine: Várias (VÁRIAS MESMO) pessoas em VÁRIOS computadores trabalhando numa MESMA linguagem/sistema operacional.

Burning Aces
Veterano
# abr/10
· votar


guilherme_90
Tu ja tentou mesmo criar uma linguagem de programação, e não deu em NADA ?

Acontece que quando você vai criando uma linguagem, mesmo que em cima de outra, você apanha um monte e depois cai na real que a sua linguagem dificilmente servirá pra alguma coisa, já que com 90% de certeza existe alguma melhor.

Aí você desanima e desencana :P

Mr. Joe
Veterano
# abr/10
· votar


Tu ja tentou mesmo criar uma linguagem de programação, e não deu em NADA ?

Como já falei, tentei, mas foi totalmente falho. haha.

Era um "PHP modificado para o mal" haha.
Tudo buggado, dava erro 500 no servidor toda hora, dava erro toda hora por qualquer coisa, e ficou uma bosta total.

Guilherme 90
Veterano
# abr/10
· votar


Basicamente sim. Você vai registrando o que o código que você cria faz.

Parece simples, mas você tem que caracterizar coisas difíceis, tipo:

"Essa função no código, retorna True? False? 1? 0?"
"Ela vai dar um print na tela? Como? Em qual posição? Quando? Qual o delay?"

Você pode criar por cima de qualquer linguagem: Java, C, Assembly, e até mesmo de web, tipo PHP e ASP (Ruby tb, Perl, e etc)


Caraca, muito complicado. O que é Delay ?

Guilherme 90
Veterano
# abr/10
· votar


Com dim-dim eu posso mandar fazer a linguagem do Papa.
eaheauhaue.

Bill Gates podia "comprar" os melhores técnicos, que eram Engenheiros de Eletrônica, Cientistas da Computação, programadores que fizeram coisas bárbaras...

Imagine: Várias (VÁRIAS MESMO) pessoas em VÁRIOS computadores trabalhando numa MESMA linguagem/sistema operacional.


Com certeza fi, Bill Bates tem dinheiro pra carvalho..
heAHAEUAUAEHAUHAEHaE

Mr. Joe
Veterano
# abr/10
· votar


Burning Aces
Acontece que quando você vai criando uma linguagem, mesmo que em cima de outra, você apanha um monte e depois cai na real que a sua linguagem dificilmente servirá pra alguma coisa, já que com 90% de certeza existe alguma melhor.

Aí você desanima e desencana :P


Exatamente!
Você tem muito trabalho, e depois vê que ninguém nem liga e nota que tem muita coisa melhor e mais trabalhada.

O certo é fazer coisas pequenas, mas que façam a diferença.

Por exemplo, eu tenho usado linguagens script ultimamente para criar hacks de jogos e etc, só por diversão. E isso tem dado um retorno pessoal satisfatório, pessoas em fóruns me agradecendo e tal, bem legal.

Mr. Joe
Veterano
# abr/10
· votar


Caraca, muito complicado. O que é Delay ?

Delay pode ser várias coisas em programação. Tradução do inglês é "atraso".
Pode ser latência, e etc.

Mas no caso era o atraso para aparecer na tela, hehe.

Guilherme 90
Veterano
# abr/10
· votar


Acontece que quando você vai criando uma linguagem, mesmo que em cima de outra, você apanha um monte e depois cai na real que a sua linguagem dificilmente servirá pra alguma coisa, já que com 90% de certeza existe alguma melhor.

Aí você desanima e desencana :P


[2]

Guilherme 90
Veterano
# abr/10
· votar


Delay pode ser várias coisas em programação. Tradução do inglês é "atraso".
Pode ser latência, e etc.

Mas no caso era o atraso para aparecer na tela, hehe.


Assim, to entendendo. É, esse negocio de criar linguagem de programação além de ser do capeta, duvido muito que alguem vai programar usando a sua..

^^

Então, o melhor a fazer é usar as brutas mesmo..
kkkkkkkkkkkkkkk

Mr. Joe
Veterano
# abr/10
· votar


guilherme_90
Assim, to entendendo. É, esse negocio de criar linguagem de programação além de ser do capeta, duvido muito que alguem vai programar usando a sua..

^^

Então, o melhor a fazer é usar as brutas mesmo..
kkkkkkkkkkkkkkk


aehuaehuuahe, isso mesmo.

Conheço milhares de linguagens desconhecidas ("D" é uma delas. Muito legal. É um C++ estruturado misturado com Java com classes e tal), que provavelmente uma equipe se esforçou, e é totalmente inutilizável, pois existem outras que são iguais e fazem melhor ainda.

O jeito é ser humirde e sonhar baixo. haha

Guilherme 90
Veterano
# abr/10
· votar


aehuaehuuahe, isso mesmo.

Conheço milhares de linguagens desconhecidas ("D" é uma delas. Muito legal. É um C++ estruturado misturado com Java com classes e tal), que provavelmente uma equipe se esforçou, e é totalmente inutilizável, pois existem outras que são iguais e fazem melhor ainda.

O jeito é ser humirde e sonhar baixo. haha


Infelizmente é assim que as coisas são. Você gosta de programar em quais linguagens ?

Não me pergunte o mesmo, please.
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

[não sei programar, AINDA]

ZakkWyldeEMG
Veterano
# abr/10
· votar


O jeito é ser humirde e sonhar baixo. haha

assembly *.*

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


ZakkWyldeEMG
assembly *.*

A última vez que me meti com Assembly foi quando tentei estudar o processador 8086 (x86) da Intel.

Dias de suor e sangue. haeuaehuaehue


guilherme_90
Você gosta de programar em quais linguagens ?

Mano, sempre prefiro C quando for fazer algo.
Mas no geral, tenho compilador de:
Java,
D,
Lua (que futuramente aprenderei a usar haeuehauae),
Win. Batch (se é considerada uma linguagem né... Eu pelo menos considero. Não é feita só de @ECHO OFF, tem muitos comandos que ajudam a fazer programas complexos PAUSE>pause.program.kom, COPY ("C:\", "D:\"), e etc)
C++ (o mesmo que o de C né... mesma coisa praticamente)
Python (baixei ontem, nem fiz nada ainda praticamente. Linguagem monótona)

E o resto esqueci.

E devo ter mais de 20 compiladores de linguagens diferentes espalhados pelo HD. eheuhaeua

Zandor
Veterano
# abr/10
· votar


Alguém sabe como se compila em um ".exe"?

Deve existir um compilador esotérico que faça isso mas usam Lua justamente pra não ter que compilar tudo denovo na hora que mudar um código que faça qualquer coisa. Eu já usei lua em dois joguinhos, em um deles o jogo era programado inteiro em lua e no outro eu programei só as falas dos personagens e essas coisas.

guilherme 90 todas as linguagens de programação já foram criadas, pode desistir. Acho que só adianta tentar fazer uma se for pra voce fazer o seu trabalho de conclusão de curso quando você estiver fazendo ciencias da computação

Zandor
Veterano
# abr/10
· votar


Mano, sempre prefiro C quando for fazer algo.

Toma cuidado com os tiranossauros

Mr. Joe
Veterano
# abr/10
· votar


Zandor
Acho que só adianta tentar fazer uma se for pra voce fazer o seu trabalho de conclusão de curso quando você estiver fazendo ciencias da computação


Criar uma linguagem como trabalho de conclusão?
Acho que isso é muita maldade. aehuehuae


Deve existir um compilador esotérico que faça isso mas usam Lua justamente pra não ter que compilar tudo denovo na hora que mudar um código que faça qualquer coisa.

Sim, sim, eu li isso em vários lugares.
Mas para começar com Lua eu gostaria de um compilador que realmente juntasse todo o Lua e mais o programa em um ".exe", para eu me habituar com a linguagem.

Fiz isso com Java, e me ajudou bastante. =P

Mr. Joe
Veterano
# abr/10
· votar


Zandor
aheauheauaehuae

Guilherme 90
Veterano
# abr/10
· votar


Mr. Joe
Mano, sempre prefiro C quando for fazer algo.
Mas no geral, tenho compilador de:
Java,
D,
Lua (que futuramente aprenderei a usar haeuehauae),
Win. Batch (se é considerada uma linguagem né... Eu pelo menos considero. Não é feita só de @ECHO OFF, tem muitos comandos que ajudam a fazer programas complexos PAUSE>pause.program.kom, COPY ("C:\", "D:\"), e etc)
C++ (o mesmo que o de C né... mesma coisa praticamente)
Python (baixei ontem, nem fiz nada ainda praticamente. Linguagem monótona)

E o resto esqueci.

E devo ter mais de 20 compiladores de linguagens diferentes espalhados pelo HD. eheuhaeua


Tenho uma apostila de C bem bacana aqui, cheguei a ler bastante ela uns tempos atrás, dai parei. Mas, quando eu estava treinando em C, gostei demais.


Zandor
guilherme 90 todas as linguagens de programação já foram criadas, pode desistir. Acho que só adianta tentar fazer uma se for pra voce fazer o seu trabalho de conclusão de curso quando você estiver fazendo ciencias da computação

Nossa cara, você é cruel demais.
^^ Brinks,
Eu fazer Ciencias da Computação ? Tô cascando fora desse curso, vo fazer um tecnologo aqui, Desenvolvimento Web. Quase nao tem cálculos, e é reconhecido pelo MEC, já tem uma turma pra formar meio desse ano, to super animado. PHP predomina o curso todo.

Bog
Veterano
# abr/10
· votar


Mr. Joe

E aí, já resolveu o teu problema? Para mim, está faltando você apontar para os diretórios onde estão os includes e a lib (dll?) da Lua.

C++ (o mesmo que o de C né... mesma coisa praticamente)

Nonononoonono! C++ tem a sintaxe parecida com C, mas tem muito mais que isso, né! Orientação a objeto faz uma diferença monstra, principalmente quando os programas começam a crescer.

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

Se você quiser fazer direito, é. Existe uma enorme teoria por trás. Envolve toda a parte de linguística e teoria de autômatos. Dê uma olhada aqui. Além disso, você precisaria resolver questões como ambiguidades, palavras reservadas e várias outras coisas.

E isso só falando da linguagem em si. Para ter um compilador ou interpretador você ainda precisaria fazer um parser, um linker, e saber otimizar bem tudo para gerar um código de máquina ou interpretador eficiente. O que quer dizer que você precisa conhecer também a fundo a plataforma sobre a qual está trabalhando.

Em um curso de ciência da computação, disciplinas como Compiladores só aparecem lá pelo 3o ano, e quando inclui a construção de um compiladorzinho (simples!), é de se arrancar os cabelos.

agora imagina o TRABALHO que a Microsoft teve pra criar suas linguagens

Você está falando dos compiladores ou das linguagens? Pergunto porque a Microsoft não criou tantas linguagens assim.

A propósito, ditado da época da faculdade: trabalhar na Microsoft está para a computaçao assim como trabalhar no McDonalds está para a gastronomia (hahaha).

Zandor
todas as linguagens de programação já foram criadas

Não, não. PARECE que já foram criadas. Isso até aparecer sabe-se-lá-de-onde algo simples, elegante, eficiente e que ninguém tinha pensado. Aí, todos dirão: "putz, como que eu não pensei nisso antes?"

Aliás, acho que isso vale para qualquer coisa que se invente. É difícil criar algo realmente inovador e que funcione bem. O que não quer dizer que tudo o que funciona bem já foi inventado.

Guilherme 90
Veterano
# abr/10
· votar


Bog

To meio sem dizer agora com seu post, são tantas dúvidas, você me dá aulas aqui no OT, sinceramente.

Me diz, é tão dificil assim fazer um compilador simples ? O que mais envolve para criar.. ?

Você está falando dos compiladores ou das linguagens? Pergunto porque a Microsoft não criou tantas linguagens assim.

Eu me referia as linguagens, mas também pode ser dos compiladores.
^^
Acho que hoje em dia é dificil criar algo simples e bom, como você disse em seu post para o Zandor, porque pelo que parece, já tem coisas demais e está muito saturado as coisas, pelo menos no mundo da computação, parece que sim, se eu estiver errado pode corrigir.

Envolve toda a parte de linguística e teoria de autômatos. Dê uma olhada aqui. Além disso, você precisaria resolver questões como ambiguidades

Como assim ?

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


guilherme_90
Envolve toda a parte de linguística e teoria de autômatos. Dê uma olhada aqui. Além disso, você precisaria resolver questões como ambiguidades

Ambiguidades no código. Um código pode dar o mesmo result. que o outro, basicamente.


Bog
E aí, já resolveu o teu problema? Para mim, está faltando você apontar para os diretórios onde estão os includes e a lib (dll?) da Lua.

Nem resolvi ainda. To ralando aqui aehuhaaehueh.
Os diretórios e as libraries já estão apontadas pelo próprio compilador. (instalei por ele mesmo)...

Mas hoje de tarde, com mais tempo, vou tentar mais. :P


C++ (o mesmo que o de C né... mesma coisa praticamente)


Nonononoonono! C++ tem a sintaxe parecida com C, mas tem muito mais que isso, né! Orientação a objeto faz uma diferença monstra, principalmente quando os programas começam a crescer.


Eu uso o C++ como C, praticamente. Hehe.
Só que gosto de usar o famoso "tribunal", para printar a concatenar, que torna tudo bem mais fácil.

Nunca uso orientação a objetos em C++. Prefiro usar estruturado mesmo. O código cresce muito quando eu deixo OOP, até mesmo quando o programa é pequeno, e aí eu me perco. haeuaehuae

As únicas linguagens que uso orientação a objeto são Java, por ser obrigado, claro, e PHP5, que aí sim faz uma diferença monstra. hehe

Bog
Veterano
# abr/10
· votar


guilherme_90
é tão dificil assim fazer um compilador simples ? O que mais envolve para criar.. ?

Um monte de teoria de autômatos e conhecimentos profundos sobre otimização e a plataforma sobre a qual você trabalha. Não é o suficiente? Para linguagens com características específicas, tem ainda mais conceitos por trás. Quanto mais alto o nível da linguagem, mais coisas ela precisa fazer por baixo dos panos.

Por exemplo, se for uma linguagem específica para programação distribuída, ela precisaria incorporar de forma transparente e fácil de usar toda uma estrutura de comunicação e proteção de dados (por exemplo, quando dois nodos resolvem escrever na mesma posição da memória). E um compilador precisaria implementar isso de um jeito eficiente.

se eu estiver errado pode corrigir.

Em qualquer época, em qualquer área, a inovação não é uma coisa fácil, mesmo quando surge de forma simples. Muitas vezes, são coisas simples, mas que ninguém percebe que podem ser feitas. Não dá para dizer que tudo já foi feito: a verdade é que não sabemos, até alguém aparecer com uma idéia milagrosa que faz todos baterem com a mão na testa.

Quanto às ambiguidades: linguagens de programação não podem conter ambiguidades, como a linguagem natural. Por exemplo, suponha que você tem uma linguagem na qual as variáveis podem ter palavras com espaços entre elas. Suponha também que variáveis podem ter QUALQUER nome, inclusive o de uma palavra reservada (ex: while). Aí temos um programa assim:

bool while
int while while

while while
while while = while

E aí? Neste programa, como resolver o que significa cada while? O que é o while boolean, o que é o "while while" int e o que é a palavra reservada while?

Claro, este exemplo é simples. Um outro exemplo bem comum é a possibilidade de termos variáveis com nomes iguais em níveis de escopo diferente. Por exemplo, em C++ é permitido ter algo como:

class Foo
{
int bar;

Foo (int bar)
{
bar = bar;
}
};

E aí, qual o bar que é usado dentro do método? Isso precisa ser especicado (no caso de C++, a linha "bar = bar" não faz nada, e o atibuto bar da classe permaneceria inalterado.)

Se você for criar uma linguagem, precisa se preocupar com esse tipo de coisa ainda durante a especificação - não é uma coisa que você senta para programar e resolve conforme for aparecendo. Fica muito mais simples resolver isso conhecendo a teoria por trás das linguagens de programação e compiladores - e é bastante coisa. Mesmo. Do tipo que enche livros. No plural.

Bog
Veterano
# abr/10
· votar


Mr. Joe
O código cresce muito quando eu deixo OOP, até mesmo quando o programa é pequeno, e aí eu me perco.

Isso é meio comum com OO. Mas por outro lado, programas complexos demais ficam bem mais gerenciáveis usando OO - neste caso, programas em C é que tendem a virar uma maçaroca de coisas. Não que você não possa usar conceitos de OO em C (diferente do que alguns acreditam, é possível, usando malabarismos com ponteiros e coisas como void*), mas é tão trabalhoso que nem vale a pena.

Eu atualmente ando trabalhando exclusivamente com C++. É muito boa para programas cheios de níveis e camadas, mas que ainda precisam de acesso direto a pointers e coisas do tipo (no caso, para processamento de imagens). Mas não sou defensor xiita de OO. Eu já trabalhei também com C e assembler, e era legal porque dava poder absoluto sobre o que o programa fazia. Claro que caçar bugs era bem mais difícil...

Guilherme 90
Veterano
# abr/10
· votar


Bog

Suponha também que variáveis podem ter QUALQUER nome, inclusive o de uma palavra reservada (ex: while)

Por isso que nas linguagens não pode usar palavras reservas como variavel, o exemplo do while foi muito bom.

Bom, na verdade eu não tenho muito que argumentar, até porque sou macaco novo nisso. ^^

E sobre criar uma linguagem de programação, pelo que eu li em seu texto, é algo muito trabalhoso MESMO, e exige MUITO conhecimento. Acho melhor eu parar com essa ideia, e aprender a programar e usar as linguagens existentes mesmo, até porque fazem coisas que eu nem acreditava.

Eu vo mesmo é aprender a fazer sistemas, como loja virtual e entre outras coisas, é claro que não é tão facil assim, mas deve ser muito emocionante. Me diz uma coisa, você sabe como que cria uma Tracker ?

Guilherme 90
Veterano
# abr/10
· votar


Bog
Eu já trabalhei também com C e assembler

Você sabe programar em Assembler ?

Bog
Veterano
# abr/10
· votar


guilherme_90
Você sabe programar em Assembler ?

Não existe só um Assembler. Por ser apenas um conjunto de apelidos para instruções de máquina, é quase que um Assembler para cada processador ou família de processadores.

No meu caso, eram DSPs da Motorola!

Me diz uma coisa, você sabe como que cria uma Tracker ?

De torrents, você diz? Não faço a menor idéia! =P

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

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