5 Search Results for "Oliveira, Miguel"


Document
BhTSL, Behavior Trees Specification and Processing

Authors: Miguel Oliveira, Pedro Mimoso Silva, Pedro Moura, José João Almeida, and Pedro Rangel Henriques

Published in: OASIcs, Volume 83, 9th Symposium on Languages, Applications and Technologies (SLATE 2020)


Abstract
In the context of game development, there is always the need for describing behaviors for various entities, whether NPCs or even the world itself. That need requires a formalism to describe properly such behaviors. As the gaming industry has been growing, many approaches were proposed. First, finite state machines were used and evolved to hierarchical state machines. As that formalism was not enough, a more powerful concept appeared. Instead of using states for describing behaviors, people started to use tasks. This concept was incorporated in behavior trees. This paper focuses in the specification and processing of Behavior Trees. A DSL designed for that purpose will be introduced. It will also be discussed a generator that produces LaTeX diagrams to document the trees, and a Python module to implement the behavior described. Additionally, a simulator will be presented. These achievements will be illustrated using a concrete game as a case study.

Cite as

Miguel Oliveira, Pedro Mimoso Silva, Pedro Moura, José João Almeida, and Pedro Rangel Henriques. BhTSL, Behavior Trees Specification and Processing. In 9th Symposium on Languages, Applications and Technologies (SLATE 2020). Open Access Series in Informatics (OASIcs), Volume 83, pp. 4:1-4:13, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


Copy BibTex To Clipboard

@InProceedings{oliveira_et_al:OASIcs.SLATE.2020.4,
  author =	{Oliveira, Miguel and Silva, Pedro Mimoso and Moura, Pedro and Almeida, Jos\'{e} Jo\~{a}o and Henriques, Pedro Rangel},
  title =	{{BhTSL, Behavior Trees Specification and Processing}},
  booktitle =	{9th Symposium on Languages, Applications and Technologies (SLATE 2020)},
  pages =	{4:1--4:13},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-165-8},
  ISSN =	{2190-6807},
  year =	{2020},
  volume =	{83},
  editor =	{Sim\~{o}es, Alberto and Henriques, Pedro Rangel and Queir\'{o}s, Ricardo},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.SLATE.2020.4},
  URN =		{urn:nbn:de:0030-drops-130174},
  doi =		{10.4230/OASIcs.SLATE.2020.4},
  annote =	{Keywords: Game development, Behavior trees (BT), NPC, DSL, Code generation}
}
Document
Musikla: Language for Generating Musical Events

Authors: Pedro Miguel Oliveira da Silva and José João Almeida

Published in: OASIcs, Volume 83, 9th Symposium on Languages, Applications and Technologies (SLATE 2020)


Abstract
In this paper, we'll discuss a simple approach to integrating musical events, such as notes or chords, into a programming language. This means treating music sequences as a first class citizen. It will be possible to save those sequences into variables or play them right away, pass them into functions or apply operators on them (like transposing or repeating the sequence). Furthermore, instead of just allowing static sequences to be generated, we'll integrate a music keyboard system that easily allows the user to bind keys (or other kinds of events) to expressions. Finally, it is important to provide the user with multiple and extensible ways of outputing their music, such as synthesizing it into a file or directly into the speakers, or writing a MIDI or music sheet file. We'll structure this paper first with an analysis of the problem and its particular requirements. Then we will discuss the solution we developed to meet those requirements. Finally we'll analyze the result and discuss possible alternative routes we could've taken.

Cite as

Pedro Miguel Oliveira da Silva and José João Almeida. Musikla: Language for Generating Musical Events. In 9th Symposium on Languages, Applications and Technologies (SLATE 2020). Open Access Series in Informatics (OASIcs), Volume 83, pp. 6:1-6:16, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


Copy BibTex To Clipboard

@InProceedings{dasilva_et_al:OASIcs.SLATE.2020.6,
  author =	{da Silva, Pedro Miguel Oliveira and Almeida, Jos\'{e} Jo\~{a}o},
  title =	{{Musikla: Language for Generating Musical Events}},
  booktitle =	{9th Symposium on Languages, Applications and Technologies (SLATE 2020)},
  pages =	{6:1--6:16},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-165-8},
  ISSN =	{2190-6807},
  year =	{2020},
  volume =	{83},
  editor =	{Sim\~{o}es, Alberto and Henriques, Pedro Rangel and Queir\'{o}s, Ricardo},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.SLATE.2020.6},
  URN =		{urn:nbn:de:0030-drops-130194},
  doi =		{10.4230/OASIcs.SLATE.2020.6},
  annote =	{Keywords: Domain Specific Language, Music Notation, Interpreter, Programming Language}
}
Document
Quarmic: A Data-Driven Web Development Framework

Authors: Pedro Miguel Pereira Cunha and José Paulo Leal

Published in: OASIcs, Volume 74, 8th Symposium on Languages, Applications and Technologies (SLATE 2019)


Abstract
Quarmic is a web framework for rapid prototyping of web applications. Its main goal is to facilitate the development of web applications by providing a high level of abstraction that hides Web communication complexities. This framework allows developers to build scalable applications capable of handling data communication in different models, data persistence and authentication, requiring them just to use simple annotations. Quarmic’s approach consists of the replication of the shared object among clients and server in order to communicate through its methods execution. Where the annotations, namely decorators, are used to indicate the concern (model or view) that each method addresses and to implement the framework’s inversion of control. By indicating the method concern, it enables the separation of its execution across the clients (responsible for the view) and the server (responsible for the model) which facilitates the state management and code maintenance.

Cite as

Pedro Miguel Pereira Cunha and José Paulo Leal. Quarmic: A Data-Driven Web Development Framework. In 8th Symposium on Languages, Applications and Technologies (SLATE 2019). Open Access Series in Informatics (OASIcs), Volume 74, pp. 19:1-19:8, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2019)


Copy BibTex To Clipboard

@InProceedings{cunha_et_al:OASIcs.SLATE.2019.19,
  author =	{Cunha, Pedro Miguel Pereira and Leal, Jos\'{e} Paulo},
  title =	{{Quarmic: A Data-Driven Web Development Framework}},
  booktitle =	{8th Symposium on Languages, Applications and Technologies (SLATE 2019)},
  pages =	{19:1--19:8},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-114-6},
  ISSN =	{2190-6807},
  year =	{2019},
  volume =	{74},
  editor =	{Rodrigues, Ricardo and Janou\v{s}ek, Jan and Ferreira, Lu{\'\i}s and Coheur, Lu{\'\i}sa and Batista, Fernando and Gon\c{c}alo Oliveira, Hugo},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.SLATE.2019.19},
  URN =		{urn:nbn:de:0030-drops-108869},
  doi =		{10.4230/OASIcs.SLATE.2019.19},
  annote =	{Keywords: web development, framework, data-driven}
}
Document
Automata Serialization for Manipulation and Drawing

Authors: Miguel Ferreira, Nelma Moreira, and Rogério Reis

Published in: OASIcs, Volume 51, 5th Symposium on Languages, Applications and Technologies (SLATE'16) (2016)


Abstract
GUItar is a GPL-licensed, cross-platform, graphical user interface for automata drawing and manipulation, written in C++ and Qt5. This tool offers support for styling, automatic layouts, several format exports and interface with any foreign finite automata manipulation library that can parse the serialized XML or JSON produced. In this paper we describe a new redesign of the GUItar framework and specially the method used to interface GUItar with automata manipulation libraries.

Cite as

Miguel Ferreira, Nelma Moreira, and Rogério Reis. Automata Serialization for Manipulation and Drawing. In 5th Symposium on Languages, Applications and Technologies (SLATE'16). Open Access Series in Informatics (OASIcs), Volume 51, pp. 15:1-15:7, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2016)


Copy BibTex To Clipboard

@InProceedings{ferreira_et_al:OASIcs.SLATE.2016.15,
  author =	{Ferreira, Miguel and Moreira, Nelma and Reis, Rog\'{e}rio},
  title =	{{Automata Serialization for Manipulation and Drawing}},
  booktitle =	{5th Symposium on Languages, Applications and Technologies (SLATE'16)},
  pages =	{15:1--15:7},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-006-4},
  ISSN =	{2190-6807},
  year =	{2016},
  volume =	{51},
  editor =	{Mernik, Marjan and Leal, Jos\'{e} Paulo and Gon\c{c}alo Oliveira, Hugo},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.SLATE.2016.15},
  URN =		{urn:nbn:de:0030-drops-60209},
  doi =		{10.4230/OASIcs.SLATE.2016.15},
  annote =	{Keywords: automata, serialization, visualization}
}
Document
Contract-Java: Design by Contract in Java with Safe Error Handling

Authors: Miguel Oliveira e Silva and Pedro G. Francisco

Published in: OASIcs, Volume 38, 3rd Symposium on Languages, Applications and Technologies (2014)


Abstract
Design by Contract (DbC) is a programming methodology in which the meaning of program entities, such as methods and classes, is made explicit by the use of programming predicates named assertions. A false assertion is always a manifestation of an incorrect program. This simple founding idea, when properly applied, give programmers a tool able to specify, test, debug, document programs, as well as a mechanism to construct a simple, safe and sane error handling mechanism. Nevertheless, although well adapted to object-oriented programming (and other popular techniques such as unit testing), DbC still has a very low practical acceptance and application. We believe that one of the main reasons for such is the lack of a proper support for it in many programming languages currently in use (such as Java). A complete support for DbC requires not only the ability to specify assertions; but also the necessity to distinguish different kinds of assertions, depending of what is being asserted; a proper integration in object-oriented programming; and, finally, a coherent connection with error handling mechanisms. It is in this last requirement that existing tools that extend Java with DbC mechanisms completely fail to properly, and coherently, integrate DbC within Java programming. The dominant practices for systematically handling failures in programming languages are not DbC based, using instead a defensive programming approach, either by using normal languages mechanisms (as in programming language C) or by the use of typed exceptions in try/catch based exception mechanisms. In this article, we will present and justify the requirements posed on programming languages for a complete support for DbC; On the context of the last presented requirement – error handling – defensive programming will be discussed and criticized; It will be showed that, unlike Eiffel's original DbC error handling, existing typed exceptions in try/catch based exception mechanisms are not well adapted to algorithmic abstraction provided by methods; Finally, a new DbC Java extension named Contract-Java will be presented and it will be showed that it is coherently integrated both with Java existing mechanisms and DbC. It will be presented an innovative Contract-Java extension to DbC that automatically generates debugging information for (non-rescued) contract failures, that we believe further enhances the DbC debugging capabilities.

Cite as

Miguel Oliveira e Silva and Pedro G. Francisco. Contract-Java: Design by Contract in Java with Safe Error Handling. In 3rd Symposium on Languages, Applications and Technologies. Open Access Series in Informatics (OASIcs), Volume 38, pp. 111-126, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2014)


Copy BibTex To Clipboard

@InProceedings{oliveiraesilva_et_al:OASIcs.SLATE.2014.111,
  author =	{Oliveira e Silva, Miguel and Francisco, Pedro G.},
  title =	{{Contract-Java: Design by Contract in Java with Safe Error Handling}},
  booktitle =	{3rd Symposium on Languages, Applications and Technologies},
  pages =	{111--126},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-939897-68-2},
  ISSN =	{2190-6807},
  year =	{2014},
  volume =	{38},
  editor =	{Pereira, Maria Jo\~{a}o Varanda and Leal, Jos\'{e} Paulo and Sim\~{o}es, Alberto},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.SLATE.2014.111},
  URN =		{urn:nbn:de:0030-drops-45641},
  doi =		{10.4230/OASIcs.SLATE.2014.111},
  annote =	{Keywords: design by contract, defensive programming, exceptions, Java, contract-Java}
}
  • Refine by Author
  • 2 Almeida, José João
  • 1 Cunha, Pedro Miguel Pereira
  • 1 Ferreira, Miguel
  • 1 Francisco, Pedro G.
  • 1 Henriques, Pedro Rangel
  • Show More...

  • Refine by Classification
  • 1 Computing methodologies → Language resources
  • 1 Software and its engineering → Application specific development environments
  • 1 Software and its engineering → Development frameworks and environments
  • 1 Theory of computation → Tree languages

  • Refine by Keyword
  • 1 Behavior trees (BT)
  • 1 Code generation
  • 1 DSL
  • 1 Domain Specific Language
  • 1 Game development
  • Show More...

  • Refine by Type
  • 5 document

  • Refine by Publication Year
  • 2 2020
  • 1 2014
  • 1 2016
  • 1 2019

Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail