SlideShare uma empresa Scribd logo
1 de 12
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

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

Lourdes edilma dìaz chùn
Lourdes edilma dìaz chùnLourdes edilma dìaz chùn
Lourdes edilma dìaz chùnLourdz Díaz
 
Resuelto control ecuaciones y sistemas
Resuelto control ecuaciones y sistemasResuelto control ecuaciones y sistemas
Resuelto control ecuaciones y sistemaspiornal2003
 
Conferencias, charlas & workshops LDW 2015
Conferencias, charlas & workshops LDW 2015Conferencias, charlas & workshops LDW 2015
Conferencias, charlas & workshops LDW 2015ldwperu
 
Lourdes edilma dìaz chùn
Lourdes edilma dìaz chùnLourdes edilma dìaz chùn
Lourdes edilma dìaz chùnLourdz Díaz
 
Jelly Cake
Jelly Cake   Jelly Cake
Jelly Cake isarevi
 
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
 
Единый урок в 6 классе по энергосбережению.
Единый урок в 6 классе по энергосбережению.Единый урок в 6 классе по энергосбережению.
Единый урок в 6 классе по энергосбережению.AlinaGeyze
 
Project Management Methodology for Site Launches
Project Management Methodology for Site LaunchesProject Management Methodology for Site Launches
Project Management Methodology for Site LaunchesMichael Eydman
 
Портфолио библиотекаря
Портфолио библиотекаряПортфолио библиотекаря
Портфолио библиотекаряzosh4
 
Периодические издания во 2 полугодии 2016 года
Периодические издания во 2 полугодии 2016 годаПериодические издания во 2 полугодии 2016 года
Периодические издания во 2 полугодии 2016 годаCBS-BELGOROD
 
Українські письменники дітям
Українські письменники   дітямУкраїнські письменники   дітям
Українські письменники дітямzosh4
 
Configuracion vlan
Configuracion vlanConfiguracion vlan
Configuracion vlan1 2d
 
Apresentação Febre amarela
Apresentação Febre amarelaApresentação Febre amarela
Apresentação Febre amarelaMariana Freire
 
Ocupação Antrópica
Ocupação AntrópicaOcupação Antrópica
Ocupação AntrópicaCatir
 

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

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
 
Apostila chardwere
Apostila chardwereApostila chardwere
Apostila chardwere
 
C hardware
C hardwareC hardware
C hardware
 
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

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 UseMichel Alves
 
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 PalettesMichel Alves
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresMichel Alves
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesMichel Alves
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel FunctionsMichel Alves
 
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 SpaceMichel Alves
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - ResultsMichel Alves
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseMichel Alves
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexMichel Alves
 
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 HarmonizationMichel Alves
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsMichel Alves
 
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/UFRJMichel Alves
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in RMichel Alves
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel PrototypeMichel Alves
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh PlotMichel Alves
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesMichel Alves
 
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 CatalogMichel 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

Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfArthurRomanof1
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 

Último (20)

Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdf
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 

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