Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
#######
#
# E-scripts e notas sobre o curso de Lua em Curitiba
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/04lua.e>
#           or at <http://angg.twu.net/e/04lua.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######







#####
#
# eelua
# 2004aug02
#
#####

(find-stringw "str!" "bufn!")

-- (find-angg ".emacs" "eeb-luaw")

--*
-- (eeb-luaw)
print("Hello", 2)
print("Hello" .. 2)
--*



# (find-es "lua")
# (find-es "lua5")
# (find-lua50ref "")







#####
#
# ementa
# 2004aug02
#
#####





mail -s 'curso sobre Lua (atrasadissimo!)' email@dvalois.net <<'%%%'
Oi Djalma,

Eu estourei o prazo que você me deu em quase uma semana e imagino que
as chances de eu ainda poder dar o curso em Curitiba são
pequenas... eu só consegui terminar toda a parte cabeluda dos cursos
que eu dei na UERJ (correções, notas de quem não ficou em prova final,
etc) na sexta, às 3:00hs da manhã...

De qualquer modo aqui vão os dados do curso. Tomara que role. Zilhões
de desculpas pelo atraso, abração,

  Edrx

--snip--snip--


Título: Curso de Lua

Resumo:

Uma "introdução em profundidade" à linguagem de programação Lua. Como
a linguagem é bastante simples (o manual de referência completo,
incluindo descrição de todas as funções e da API em C, tem 65
páginas), será possível abordar todos os aspectos principais da
linguagem, e mais algumas extensões, ferramentas, e várias técnicas de
uso.

Ementa:

* Instalando e rodando o Lua
* O núcleo do Lua:
  * Tipos de dados; expressões e statements. Sintaxe. ";"s implícitos.
  * Variáveis globais e locais; escopo.
  * Tabelas associativas; como arrays, classes e variáveis globais são
    implementados via tabelas.
  * Funções como objetos; closures; blocos de código; propagação de
    erros.
* Bibliotecas padrão:
  * Suporte a I/O e arquivos.
  * dofile, dostring e require.
  * Operações sobre tabelas; modos de percorrer tabelas.
  * Operações sobre strings; regexps em Lua.
  * Carregando bibliotecas extras com loadlib.
* Algumas bibliotecas e extensões: bitlib, pcre, posixlib, cgilua.
* As entranhas do Lua:
  * A biblioteca "debug".
  * Byte-compilação, a máquina virtual interna do Lua, a pilha.
  * Rodando o Lua passo a passo com gdb; examinando o conteúdo da
    pilha. Seguindo passo a passo algumas funções Lua definidas em C.
    A API do Lua.
  * Executando scripts e funções Lua a partir de C.
* Uma ferramenta para ligar Lua e C mais facilmente: tolua.

Pré-requisitos (aluno): inglês técnico básico (para entender a
documentação), alguma familiaridade com C (para quem quiser acompanhar
a parte final do curso).

Pré-requisitos (sala): nenhum.

Carga horária: mínimo de 9hs, máximo de 16hs.


Bibliografia:

http://www.lua.org/ftp/refman-5.0.ps.gz
http://www.lua.org/pil/
http://umn.dl.sourceforge.net/sourceforge/lua-users/shortref-d2.pdf
http://umn.dl.sourceforge.net/sourceforge/lua-users/luaapiref-d1.pdf


(Obs: se for possível colocar um link para
<http://www.lua.org/ftp/refman-5.0.ps.gz> no resumo do curso vai ser
otimo).

--snip--snip--

P.S.: depois eu mando a url de onde eu estou pondo o material do curso
(scripts de compilação, programas-exemplo, etc). Por enquanto tem
pouca coisa lá, o material antigo que eu vou reciclar está espalhado,
e o novo, óbvio, está sendo feito... [], Edrx
%%%




# http://www.gnus.com.br/




As grandes esquisitices do Lua:
* funções podem retornar vários valores
* tabelas podem ser indexadas por qualquer coisa
* arrays e classes são implementados usando tabelas
* funções capturam variáveis locais e viram closures

Esquisitices médias:
* o núcleo básico da linguagem é mínimo e não inclui nem mesmo suporte
  a arquivos, o interpretador, ou operações bit a bit.
* muitos usuários sabem como o Lua funciona por dentro - vide código
  em C, power patches, virtual machines, debug interface.


cd $ES
anonftp angg.twu.net 'cd ~/public_html/e/' 'put 04lua.e' quit
# http://angg.twu.net/e/04lua.e





  Lista final de pacotes (2004aug20):
emacs21 zsh lua50 lua50-doc
liblua50-dev liblualib50-dev
erc w3m-el
expect
emacs21-el elisp-manual
libreadline4-dev
build-essential
mgp

(code-ps "luarefcard"
  "$S/http/umn.dl.sourceforge.net/sourceforge/lua-users/shortref-d2.pdf")
(code-ps "luaapirefcard"
  "$S/http/umn.dl.sourceforge.net/sourceforge/lua-users/luaapiref-d1.pdf")

(find-luarefcardpage 1)



#  Local Variables:
#  coding:               raw-text-unix
#  ee-delimiter-hash:    "\n#*\n"
#  ee-delimiter-percent: "\n%*\n"
#  ee-anchor-format:     "«%s»"
#  End: