SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie The Language VolcanX - ABMSL

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
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
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfIedaGoethe
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 

Kürzlich hochgeladen (20)

Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
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
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdf
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
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 -
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 

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