SlideShare uma empresa Scribd logo
ABMSL - Draft 0.1 - Codename VolcanX
Ailton Félix de Lima Filho - Bruno Normande Lins - Michel Alves dos Santos ∗
4 de Dezembro de 2010
Resumo
Uma linguagem de programação é um método padronizado para expressar instruções
para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um
programa de computador. Uma linguagem, permite que um programador especifique precisa-
mente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou
transmitidos e quais ações devem ser tomadas sob várias circunstâncias. As regras sintáticas e
semânticas citadas anteriormente, dão origem ao conjunto de palavras da linguagem (tokens)
que por sua vez constituem o código fonte de um programa. Esse código fonte é depois tra-
duzido para código de máquina, que é executado pelo processador. Uma das principais metas
das linguagens de programação é permitir que programadores tenham uma maior produtivi-
dade, permitindo expressar suas intenções mais facilmente do que quando comparado com a
linguagem que um computador entende nativamente. Assim, linguagens de programação são
projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida
por programadores humanos. Linguagens de programação são ferramentas importantes para
que programadores e engenheiros de software possam escrever programas mais organizados e
com maior rapidez.
Linguagens de programação também tornam os programas menos dependentes de com-
putadores, plataformas ou ambientes computacionais específicos, a essa propriedade dá-se o
nome de portabilidade. Isto acontece porque programas escritos em linguagens de programa-
ção são traduzidos para o código de máquina do computador no qual será executado ao invés
de ser diretamente executado.
∗Bacharelandos em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL), Centro de
Pesquisa em Matemática Computacional(CPMAT), Brasil - Maceió/AL, E-mails: {afdlf2, normandelins, mi-
chel.mas}@gmail.com
1
Vi Veri Veniversum Vivus Vici
Pelo poder da verdade, eu, enquanto vivo, conquistei o universo.
V for Vendetta
2
Conteúdo
Lista de Figuras 4
Lista de Tabelas 5
Lista de Códigos Fonte 6
1 Introdução 7
2 Importação ou Inclusão de Bibliotecas do Sistema 7
3 Comentários 8
4 Estrutura de Decisão 8
5 Estrutura de Laço Condicional 9
6 Estrutura de Laço Iterativo 9
7 Leitura e Escrita em Console 10
8 Agradecimentos 11
Referências Bibliográficas 12
3
Lista de Figuras
1 TheVolcans: mascotes da linguagem ABMSL . . . . . . . . . . . . . . . . . . . 11
4
Lista de Tabelas
5
Lista de Código Fonte
1 Menor programa escrito em ABMSL . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Maneira pela qual podemos importar bibliotecas em ABMSL . . . . . . . . . . 7
3 Maneira pela qual podemos inserir comentários em ABMSL . . . . . . . . . . . 8
4 Estrutura de decisão em ABMSL . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5 Laço condicional pré-teste em ABMSL . . . . . . . . . . . . . . . . . . . . . . . 9
6 Laço condicional pós-teste em ABMSL . . . . . . . . . . . . . . . . . . . . . . . 9
7 Laço iterativo em ABMSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
8 Exemplo de uso do laço iterativo em ABMSL . . . . . . . . . . . . . . . . . . . 10
6
1 Introdução
Neste trabalho apresentaremos uma proposta de linguagem de programação: a ABMSL
VolcanX. A linguagem proposta possui como características ser compacta, simples (porém não
tediosa), rápida como seus ancestrais, extensível através de bibliotecas, multiparadigma, multi-
plataforma (através das várias versões de seu compilador), aberta a comunidade e de evolução
constante, levando em consideração tanto as tendências acadêmicas quanto as comerciais. Além
disso ABMSL possui uma curva de aprendizagem acentuadamente leve, significando que pode
ser usada de maneira satisfatória tanto por iniciantes quanto por experts. A linguagem ABMSL
possui um bloco de preparação chamado ready e um bloco de computação de instruções chamado
go, essa estrutura é muito semelhante ao anúncio inicial de uma contenda ou disputa esportiva:
“Se você está preparado então vá!”. O bloco ready garante que todas as estruturas auxiliares
necessárias a computação de um determinado problema estejam presentes: variáveis declaradas
e subrotinas próprias definidas e implementadas. De um determinado ponto de vista isso pode
diminuir a flexibilidade no momento da escrita de código, porém, reforça a segurança tendo em
vista que todos os elementos inerentes e necessários a resolução de um problema se encontrem
tão e somente em um único lugar evitando assim algo como uma “caça” a variáveis ou estruturas
misteriosamente declaradas e esparsas em localidades obscuras do código fonte. Vale ressaltar que
essa estratégia de declaração previamente localizada também contribui para o aumento da legibi-
lidade de código. Em primeira mão a estrutura apresentada pode lembrar a dos fontes feitos em
Pascal ou Algol, porém com uma menor verbosidade. O menor trecho de código em ABMSL
é dado por:
 ¨§ ¤
1 program helloworld ;
2 ready //?
3 {
4 }
5 go //!
6 {
7 return 0 ;
8 }
 ©¦ ¥
Código Fonte 1: Menor programa escrito em ABMSL .
Muitas vezes pode parecer tedioso chamar a linguagem por seu nome completo, por esse motivo
seus autores a apelidaram de V que é, nada mais nada menos o nome do personagem principal do
filme “V for Vendetta”, uma adaptação da graphic novel do escritor e cartunista Alan Moore,
que em português foi intitulado como “V de Vingança”. O nome ABMSL não denota nenhum
acrônimo recursivo elegante ou inteligentemente concebido. É apenas a contração do nome dos
autores mais uma série de adjetivos que os mesmos desejaram que representasse a filosofia dessa
nova plataforma proposta:
ABMSL = Ailton-Bruno-Michel Stupend, Strange, Simple, Singular, and Simplistic
Language.
2 Importação ou Inclusão de Bibliotecas do Sistema
A importação de bibliotecas do sistema é feita através da claúsula #uses.
 ¨§ ¤
1 #uses System . Console ;
2 #uses System . Net , System . Constants ;
3 #uses System . Proccess , System . String , System . Graphics ;
4 program libsimport ;
5 ready //?
7
6 {
7 }
8 go //!
9 {
10 return SYSTEM_EXIT_SUCCESS;
11 }
 ©¦ ¥
Código Fonte 2: Maneira pela qual podemos importar bibliotecas em ABMSL .
3 Comentários
Os comentários em ABMSL são construídos através dos caracteres // e /**/.
 ¨§ ¤
1 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
2 // Cabecalho de identificacao de um programa ABMSL escrito
3 // inteiramente com comentarios em modo mono−linha .
4 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
5 program comments ;
6 ready //?
7 {
8 }
9 go //!
10 {
11 // Comentario em uma unica linha . . .
12 // Outro comentario em uma unica linha . . .
13
14 /∗
15 ∗ Comentario em varias linhas . . .
16 ∗/
17
18 return 0 ;
19 }
 ©¦ ¥
Código Fonte 3: Maneira pela qual podemos inserir comentários em ABMSL .
4 Estrutura de Decisão
As estruturas de decisão da linguagem ABMSL se apresentam da seguinte forma:
 ¨§ ¤
1 program decision ;
2 ready //?
3 {
4 }
5 go //!
6 {
7 i f (Expressao Logica ) do {}
8
9 //ou
10
11 i f (Expressao Logica ) do
12 {
8
13 }
14 else
15 {
16 }
17
18 return 0 ;
19 }
 ©¦ ¥
Código Fonte 4: Estrutura de decisão em ABMSL .
5 Estrutura de Laço Condicional
As estruturas de laço condicional da linguagem ABMSL se apresentam da seguinte forma:
 ¨§ ¤
1 program whiledo ;
2 ready //?
3 {
4 }
5 go //!
6 {
7 while (Expressao Logica ) do
8 {
9 }
10
11 return 0 ;
12 }
 ©¦ ¥
Código Fonte 5: Laço condicional pré-teste em ABMSL .
 ¨§ ¤
1 program dowhile ;
2 ready //?
3 {
4 }
5 go //!
6 {
7 do
8 {
9 }while (Expressao Logica ) ;
10
11 return 0 ;
12 }
 ©¦ ¥
Código Fonte 6: Laço condicional pós-teste em ABMSL .
6 Estrutura de Laço Iterativo
A estrutura de laço iterativo da linguagem ABMSL se apresenta da seguinte forma:
 ¨§ ¤
1 program loopingfor ;
2 ready //?
3 {
9
4 }
5 go //!
6 {
7 for i n i c i a l i z a c a o  to maximo [ step incremento ] do
8 {
9 }
10
11 return 0 ;
12 }
 ©¦ ¥
Código Fonte 7: Laço iterativo em ABMSL .
 ¨§ ¤
1 program samplefor ;
2 #uses System . Constants ;
3 ready //?
4 {
5 var i : int ;
6 }
7 go //!
8 {
9 //Exemplo
10 for i = 0 to MAX_INT step 2 do
11 {
12 }
13
14 return SYSTEM_EXIT_SUCCESS;
15 }
 ©¦ ¥
Código Fonte 8: Exemplo de uso do laço iterativo em ABMSL .
7 Leitura e Escrita em Console
A leitura e escrita em console são executadas através das funções vput() e vget(), respectiva-
mente. A saída padrão de erro é feita através da função verr(). Todas as funções que manipulam
a saída ou entrada via console se encontram no pacote System.Console.
10
8 Agradecimentos
Figura 1: TheVolcans: mascotes da linguagem ABMSL .
11
Referências
de Alencar Price, A. M.  Toscani, S. S. (2004), Implementação de Linguagens de Progrmação:
Compiladores, number 9, 3 ed., Bookman.
Sebesta, R. W. (2003), Conceitos de Linguagem de Programação, 5 ed., Bookman.
12

Mais conteúdo relacionado

Mais procurados

Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programação
LCCIMETRO
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
LCCIMETRO
 
Aula 01 introdução ao php
Aula 01   introdução ao phpAula 01   introdução ao php
Aula 01 introdução ao php
Adriano Castro
 

Mais procurados (20)

Shell Script
Shell ScriptShell Script
Shell Script
 
Shell Script v0
Shell Script v0Shell Script v0
Shell Script v0
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programação
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Lab so-abertos-unidade6
Lab so-abertos-unidade6Lab so-abertos-unidade6
Lab so-abertos-unidade6
 
Resumo OpenMP
Resumo OpenMPResumo OpenMP
Resumo OpenMP
 
Jogos pe logica_aplicada_apostila_c_sharp
Jogos pe logica_aplicada_apostila_c_sharpJogos pe logica_aplicada_apostila_c_sharp
Jogos pe logica_aplicada_apostila_c_sharp
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
APM Model in .NET - PT-pt
APM Model in .NET - PT-ptAPM Model in .NET - PT-pt
APM Model in .NET - PT-pt
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Guia php
Guia phpGuia php
Guia php
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básico
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 
Zephir
ZephirZephir
Zephir
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
Aula 01 introdução ao php
Aula 01   introdução ao phpAula 01   introdução ao php
Aula 01 introdução ao php
 

Destaque

Resuelto control ecuaciones y sistemas
Resuelto control ecuaciones y sistemasResuelto control ecuaciones y sistemas
Resuelto control ecuaciones y sistemas
piornal2003
 
Mondial assistance health & lifecare versie.2011 sept
Mondial assistance health & lifecare versie.2011 sept Mondial assistance health & lifecare versie.2011 sept
Mondial assistance health & lifecare versie.2011 sept
Patje1207Elia
 
Configuracion vlan
Configuracion vlanConfiguracion vlan
Configuracion vlan
1 2d
 

Destaque (20)

Tivoli
TivoliTivoli
Tivoli
 
Koordinointikumppanuus - pecha kucha
Koordinointikumppanuus - pecha kuchaKoordinointikumppanuus - pecha kucha
Koordinointikumppanuus - pecha kucha
 
Lourdes edilma dìaz chùn
Lourdes edilma dìaz chùnLourdes edilma dìaz chùn
Lourdes edilma dìaz chùn
 
Resuelto control ecuaciones y sistemas
Resuelto control ecuaciones y sistemasResuelto control ecuaciones y sistemas
Resuelto control ecuaciones y sistemas
 
Conferencias, charlas & workshops LDW 2015
Conferencias, charlas & workshops LDW 2015Conferencias, charlas & workshops LDW 2015
Conferencias, charlas & workshops LDW 2015
 
Lourdes edilma dìaz chùn
Lourdes edilma dìaz chùnLourdes edilma dìaz chùn
Lourdes edilma dìaz chùn
 
Kummiwiki -oppimisympäristöjen kehittämishanke
Kummiwiki -oppimisympäristöjen kehittämishankeKummiwiki -oppimisympäristöjen kehittämishanke
Kummiwiki -oppimisympäristöjen kehittämishanke
 
Jelly Cake
Jelly Cake   Jelly Cake
Jelly Cake
 
INFORME DE LABORATORIO
INFORME DE LABORATORIOINFORME DE LABORATORIO
INFORME DE LABORATORIO
 
Mondial assistance health & lifecare versie.2011 sept
Mondial assistance health & lifecare versie.2011 sept Mondial assistance health & lifecare versie.2011 sept
Mondial assistance health & lifecare versie.2011 sept
 
Biocombustibles
BiocombustiblesBiocombustibles
Biocombustibles
 
Единый урок в 6 классе по энергосбережению.
Единый урок в 6 классе по энергосбережению.Единый урок в 6 классе по энергосбережению.
Единый урок в 6 классе по энергосбережению.
 
9ano portugues
9ano portugues9ano portugues
9ano portugues
 
Project Management Methodology for Site Launches
Project Management Methodology for Site LaunchesProject Management Methodology for Site Launches
Project Management Methodology for Site Launches
 
Портфолио библиотекаря
Портфолио библиотекаряПортфолио библиотекаря
Портфолио библиотекаря
 
Периодические издания во 2 полугодии 2016 года
Периодические издания во 2 полугодии 2016 годаПериодические издания во 2 полугодии 2016 года
Периодические издания во 2 полугодии 2016 года
 
Українські письменники дітям
Українські письменники   дітямУкраїнські письменники   дітям
Українські письменники дітям
 
Configuracion vlan
Configuracion vlanConfiguracion vlan
Configuracion vlan
 
Apresentação Febre amarela
Apresentação Febre amarelaApresentação Febre amarela
Apresentação Febre amarela
 
Ocupação Antrópica
Ocupação AntrópicaOcupação Antrópica
Ocupação Antrópica
 

Semelhante a The Language VolcanX - ABMSL

Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 

Semelhante a The Language VolcanX - ABMSL (20)

Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Pascal 70
Pascal 70Pascal 70
Pascal 70
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
C hardware
C hardwareC hardware
C hardware
 
Apostila chardwere
Apostila chardwereApostila chardwere
Apostila chardwere
 
Apostila linguagem pascal
Apostila linguagem pascalApostila linguagem pascal
Apostila linguagem pascal
 
EscmaScript
EscmaScriptEscmaScript
EscmaScript
 
Apostila c
Apostila cApostila c
Apostila c
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
Atividade programação script 2
Atividade programação script 2Atividade programação script 2
Atividade programação script 2
 
Sistemas logicos programaveis
Sistemas logicos programaveisSistemas logicos programaveis
Sistemas logicos programaveis
 
Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)
 
Curso de perl
Curso de perlCurso de perl
Curso de perl
 
Curso asp - basico
Curso   asp - basicoCurso   asp - basico
Curso asp - basico
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Jogos pe logica_aplicada_apostila_c_sharp
Jogos pe logica_aplicada_apostila_c_sharpJogos pe logica_aplicada_apostila_c_sharp
Jogos pe logica_aplicada_apostila_c_sharp
 
Aula 01 algoritmo
Aula 01 algoritmoAula 01 algoritmo
Aula 01 algoritmo
 

Mais de Michel Alves

Mais de Michel Alves (20)

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU Use
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color Palettes
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color Measures
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment Indexes
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel Functions
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV Space
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - Results
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin Noise
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM Index
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJ
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in R
 
Sigmoid Curve Erf
Sigmoid Curve ErfSigmoid Curve Erf
Sigmoid Curve Erf
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel Prototype
 
Cosine Curve
Cosine CurveCosine Curve
Cosine Curve
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh Plot
 
Triangle Plot
Triangle PlotTriangle Plot
Triangle Plot
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video Slides
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function Catalog
 

Último

GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
rarakey779
 
Manual dos Principio básicos do Relacionamento e sexologia humana .pdf
Manual dos Principio básicos do Relacionamento e sexologia humana .pdfManual dos Principio básicos do Relacionamento e sexologia humana .pdf
Manual dos Principio básicos do Relacionamento e sexologia humana .pdf
Pastor Robson Colaço
 
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkkO QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
LisaneWerlang
 

Último (20)

22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaa22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaa
 
Os Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco LeiteOs Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco Leite
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantil
 
ufcd_9649_Educação Inclusiva e Necessidades Educativas Especificas_índice.pdf
ufcd_9649_Educação Inclusiva e Necessidades Educativas Especificas_índice.pdfufcd_9649_Educação Inclusiva e Necessidades Educativas Especificas_índice.pdf
ufcd_9649_Educação Inclusiva e Necessidades Educativas Especificas_índice.pdf
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
AULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxAULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptx
 
O que é uma Revolução Solar. tecnica preditiva
O que é uma Revolução Solar. tecnica preditivaO que é uma Revolução Solar. tecnica preditiva
O que é uma Revolução Solar. tecnica preditiva
 
América Latina: Da Independência à Consolidação dos Estados Nacionais
América Latina: Da Independência à Consolidação dos Estados NacionaisAmérica Latina: Da Independência à Consolidação dos Estados Nacionais
América Latina: Da Independência à Consolidação dos Estados Nacionais
 
00Certificado - MBA - Gestão de projetos
00Certificado - MBA - Gestão de projetos00Certificado - MBA - Gestão de projetos
00Certificado - MBA - Gestão de projetos
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
 
hereditariedade é variabilidade genetic
hereditariedade é variabilidade  genetichereditariedade é variabilidade  genetic
hereditariedade é variabilidade genetic
 
Manual dos Principio básicos do Relacionamento e sexologia humana .pdf
Manual dos Principio básicos do Relacionamento e sexologia humana .pdfManual dos Principio básicos do Relacionamento e sexologia humana .pdf
Manual dos Principio básicos do Relacionamento e sexologia humana .pdf
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
 
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
 
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxSlides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
 
ATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptx
 
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkkO QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é preciso
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 

The Language VolcanX - ABMSL

  • 1. ABMSL - Draft 0.1 - Codename VolcanX Ailton Félix de Lima Filho - Bruno Normande Lins - Michel Alves dos Santos ∗ 4 de Dezembro de 2010 Resumo Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem, permite que um programador especifique precisa- mente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. As regras sintáticas e semânticas citadas anteriormente, dão origem ao conjunto de palavras da linguagem (tokens) que por sua vez constituem o código fonte de um programa. Esse código fonte é depois tra- duzido para código de máquina, que é executado pelo processador. Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtivi- dade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente. Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez. Linguagens de programação também tornam os programas menos dependentes de com- putadores, plataformas ou ambientes computacionais específicos, a essa propriedade dá-se o nome de portabilidade. Isto acontece porque programas escritos em linguagens de programa- ção são traduzidos para o código de máquina do computador no qual será executado ao invés de ser diretamente executado. ∗Bacharelandos em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL), Centro de Pesquisa em Matemática Computacional(CPMAT), Brasil - Maceió/AL, E-mails: {afdlf2, normandelins, mi- chel.mas}@gmail.com 1
  • 2. Vi Veri Veniversum Vivus Vici Pelo poder da verdade, eu, enquanto vivo, conquistei o universo. V for Vendetta 2
  • 3. Conteúdo Lista de Figuras 4 Lista de Tabelas 5 Lista de Códigos Fonte 6 1 Introdução 7 2 Importação ou Inclusão de Bibliotecas do Sistema 7 3 Comentários 8 4 Estrutura de Decisão 8 5 Estrutura de Laço Condicional 9 6 Estrutura de Laço Iterativo 9 7 Leitura e Escrita em Console 10 8 Agradecimentos 11 Referências Bibliográficas 12 3
  • 4. Lista de Figuras 1 TheVolcans: mascotes da linguagem ABMSL . . . . . . . . . . . . . . . . . . . 11 4
  • 6. Lista de Código Fonte 1 Menor programa escrito em ABMSL . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Maneira pela qual podemos importar bibliotecas em ABMSL . . . . . . . . . . 7 3 Maneira pela qual podemos inserir comentários em ABMSL . . . . . . . . . . . 8 4 Estrutura de decisão em ABMSL . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5 Laço condicional pré-teste em ABMSL . . . . . . . . . . . . . . . . . . . . . . . 9 6 Laço condicional pós-teste em ABMSL . . . . . . . . . . . . . . . . . . . . . . . 9 7 Laço iterativo em ABMSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 8 Exemplo de uso do laço iterativo em ABMSL . . . . . . . . . . . . . . . . . . . 10 6
  • 7. 1 Introdução Neste trabalho apresentaremos uma proposta de linguagem de programação: a ABMSL VolcanX. A linguagem proposta possui como características ser compacta, simples (porém não tediosa), rápida como seus ancestrais, extensível através de bibliotecas, multiparadigma, multi- plataforma (através das várias versões de seu compilador), aberta a comunidade e de evolução constante, levando em consideração tanto as tendências acadêmicas quanto as comerciais. Além disso ABMSL possui uma curva de aprendizagem acentuadamente leve, significando que pode ser usada de maneira satisfatória tanto por iniciantes quanto por experts. A linguagem ABMSL possui um bloco de preparação chamado ready e um bloco de computação de instruções chamado go, essa estrutura é muito semelhante ao anúncio inicial de uma contenda ou disputa esportiva: “Se você está preparado então vá!”. O bloco ready garante que todas as estruturas auxiliares necessárias a computação de um determinado problema estejam presentes: variáveis declaradas e subrotinas próprias definidas e implementadas. De um determinado ponto de vista isso pode diminuir a flexibilidade no momento da escrita de código, porém, reforça a segurança tendo em vista que todos os elementos inerentes e necessários a resolução de um problema se encontrem tão e somente em um único lugar evitando assim algo como uma “caça” a variáveis ou estruturas misteriosamente declaradas e esparsas em localidades obscuras do código fonte. Vale ressaltar que essa estratégia de declaração previamente localizada também contribui para o aumento da legibi- lidade de código. Em primeira mão a estrutura apresentada pode lembrar a dos fontes feitos em Pascal ou Algol, porém com uma menor verbosidade. O menor trecho de código em ABMSL é dado por: ¨§ ¤ 1 program helloworld ; 2 ready //? 3 { 4 } 5 go //! 6 { 7 return 0 ; 8 } ©¦ ¥ Código Fonte 1: Menor programa escrito em ABMSL . Muitas vezes pode parecer tedioso chamar a linguagem por seu nome completo, por esse motivo seus autores a apelidaram de V que é, nada mais nada menos o nome do personagem principal do filme “V for Vendetta”, uma adaptação da graphic novel do escritor e cartunista Alan Moore, que em português foi intitulado como “V de Vingança”. O nome ABMSL não denota nenhum acrônimo recursivo elegante ou inteligentemente concebido. É apenas a contração do nome dos autores mais uma série de adjetivos que os mesmos desejaram que representasse a filosofia dessa nova plataforma proposta: ABMSL = Ailton-Bruno-Michel Stupend, Strange, Simple, Singular, and Simplistic Language. 2 Importação ou Inclusão de Bibliotecas do Sistema A importação de bibliotecas do sistema é feita através da claúsula #uses. ¨§ ¤ 1 #uses System . Console ; 2 #uses System . Net , System . Constants ; 3 #uses System . Proccess , System . String , System . Graphics ; 4 program libsimport ; 5 ready //? 7
  • 8. 6 { 7 } 8 go //! 9 { 10 return SYSTEM_EXIT_SUCCESS; 11 } ©¦ ¥ Código Fonte 2: Maneira pela qual podemos importar bibliotecas em ABMSL . 3 Comentários Os comentários em ABMSL são construídos através dos caracteres // e /**/. ¨§ ¤ 1 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 2 // Cabecalho de identificacao de um programa ABMSL escrito 3 // inteiramente com comentarios em modo mono−linha . 4 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 5 program comments ; 6 ready //? 7 { 8 } 9 go //! 10 { 11 // Comentario em uma unica linha . . . 12 // Outro comentario em uma unica linha . . . 13 14 /∗ 15 ∗ Comentario em varias linhas . . . 16 ∗/ 17 18 return 0 ; 19 } ©¦ ¥ Código Fonte 3: Maneira pela qual podemos inserir comentários em ABMSL . 4 Estrutura de Decisão As estruturas de decisão da linguagem ABMSL se apresentam da seguinte forma: ¨§ ¤ 1 program decision ; 2 ready //? 3 { 4 } 5 go //! 6 { 7 i f (Expressao Logica ) do {} 8 9 //ou 10 11 i f (Expressao Logica ) do 12 { 8
  • 9. 13 } 14 else 15 { 16 } 17 18 return 0 ; 19 } ©¦ ¥ Código Fonte 4: Estrutura de decisão em ABMSL . 5 Estrutura de Laço Condicional As estruturas de laço condicional da linguagem ABMSL se apresentam da seguinte forma: ¨§ ¤ 1 program whiledo ; 2 ready //? 3 { 4 } 5 go //! 6 { 7 while (Expressao Logica ) do 8 { 9 } 10 11 return 0 ; 12 } ©¦ ¥ Código Fonte 5: Laço condicional pré-teste em ABMSL . ¨§ ¤ 1 program dowhile ; 2 ready //? 3 { 4 } 5 go //! 6 { 7 do 8 { 9 }while (Expressao Logica ) ; 10 11 return 0 ; 12 } ©¦ ¥ Código Fonte 6: Laço condicional pós-teste em ABMSL . 6 Estrutura de Laço Iterativo A estrutura de laço iterativo da linguagem ABMSL se apresenta da seguinte forma: ¨§ ¤ 1 program loopingfor ; 2 ready //? 3 { 9
  • 10. 4 } 5 go //! 6 { 7 for i n i c i a l i z a c a o to maximo [ step incremento ] do 8 { 9 } 10 11 return 0 ; 12 } ©¦ ¥ Código Fonte 7: Laço iterativo em ABMSL . ¨§ ¤ 1 program samplefor ; 2 #uses System . Constants ; 3 ready //? 4 { 5 var i : int ; 6 } 7 go //! 8 { 9 //Exemplo 10 for i = 0 to MAX_INT step 2 do 11 { 12 } 13 14 return SYSTEM_EXIT_SUCCESS; 15 } ©¦ ¥ Código Fonte 8: Exemplo de uso do laço iterativo em ABMSL . 7 Leitura e Escrita em Console A leitura e escrita em console são executadas através das funções vput() e vget(), respectiva- mente. A saída padrão de erro é feita através da função verr(). Todas as funções que manipulam a saída ou entrada via console se encontram no pacote System.Console. 10
  • 11. 8 Agradecimentos Figura 1: TheVolcans: mascotes da linguagem ABMSL . 11
  • 12. Referências de Alencar Price, A. M. Toscani, S. S. (2004), Implementação de Linguagens de Progrmação: Compiladores, number 9, 3 ed., Bookman. Sebesta, R. W. (2003), Conceitos de Linguagem de Programação, 5 ed., Bookman. 12