SlideShare a Scribd company logo
Introduction
                Languages
                    Action
                Resources




Alternative Programming Languages
      Mercury - JavaFX - Piet - Go


            Seraf´ V´lez Barrera
                 ın e
      serafin.velez.barrera@gmail.com


          Universidad de Granada

            11 de Enero de 2011




      Seraf´ V´lez Barrera
           ın e              Alternative Programming Languages
Introduction
                                   Languages
                                       Action
                                   Resources


Index


  1   Introduction

  2   Languages
        Mercury
        JavaFX
        Piet
        GO

  3   1,2,3... Action!

  4   Resources



                         Seraf´ V´lez Barrera
                              ın e              Alternative Programming Languages
Introduction
                              Languages
                                  Action
                              Resources


What is a programming language




  Definition
  A programming language is an artificial language designed to
  communicate instructions to a machine




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction
                               Languages
                                   Action
                               Resources


Types




   1    General purpose: C, C++, Java, etc




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction
                               Languages
                                   Action
                               Resources


Types




   1    General purpose: C, C++, Java, etc
   2    Specific language: VHDL




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction
                                Languages
                                    Action
                                Resources


Types




   1    General purpose: C, C++, Java, etc
   2    Specific language: VHDL
   3    Others: Artistic, etc




                      Seraf´ V´lez Barrera
                           ın e              Alternative Programming Languages
Introduction   Mercury
          Languages    JavaFX
              Action   Piet
          Resources    GO




       Mercury




Seraf´ V´lez Barrera
     ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction


      Designed and implemented by a small group of researchers at
      the University of Melbourne (Australia) between this group
      there are: Fergus Henderson, Thomas Conway, etc.
      Based on the paradigm of purely declarative programming,
      and was designed to be useful for the development of large
      and robust “real-world” applications.
      It improves on existing logic programming languages by
      providing increased productivity, reliability and efficiency, and
      by avoiding the need for non-logical program constructs.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction


  This language differentiates of the rest by the concept to program.

                                      Why?

  Because is a logical programming and the syntax is similar to
  Prolog, with some additional declarations for types, modes,
  determinism, the module system, and pragmas, and with the
  distinction that function symbols may stand also for invocations of
  user- defined functions as well as for data constructors.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                               Languages    JavaFX
                                   Action   Piet
                               Resources    GO


Syntax

  Mercury have a syntax similar to Pascal but this language use
  terms like:
      Tokens
      Predicates
  because is a logical programming language and is:
      A strongly typed language:
           :− t y p e l i s t (T) −−−> [ ] ; [ T |            l i s t (T ) ] .


      A strongly moded language:
           :− mode append ( i n , i n , o u t ) .




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction   Mercury
                                Languages    JavaFX
                                    Action   Piet
                                Resources    GO


Developing an app




  In other Workshop




                      Seraf´ V´lez Barrera
                           ın e              Alternative Programming Languages
Introduction   Mercury
          Languages    JavaFX
              Action   Piet
          Resources    GO




Seraf´ V´lez Barrera
     ın e              Alternative Programming Languages
Introduction   Mercury
                               Languages    JavaFX
                                   Action   Piet
                               Resources    GO


Introduction



  JavaFX is a language that is oriented to create RIA app’s (RIA =
  Rich Internet Application) and this app’s integrate the simplicity of
  a web app and the potentially of a desktop app.
  JavaFX include various technologys like JavaFX Script, JavaFX
  Mobile, and JavaFX TV.
  We are going to see JavaFX Script, apart of to be a scripting
  language is a language to desing User Interfaces, so have the
  powerfull of a script with the design of interfaces in graphic mode.




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Developing an app




  In other Workshop - Maybe later there will be a demo.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
          Languages    JavaFX
              Action   Piet
          Resources    GO




              Piet




Seraf´ V´lez Barrera
     ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction



  Piet (named after painter Piet Mondrian) is one of the most
  known esoteric programming languages, which uses images as
  source code. The language uses 20 colors, and the commands are
  encoded as changes of color between adjacent pixels.
  Piet was created by David Morgan-Mar, who aimed for a language
  which would have its code look like abstract art. The language
  hasn’t spawned any dialects; there are several implementations,
  which differ slightly, mainly in the way the colors are processed.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Developing an app




  In other Workshop - Maybe later there will be some examples.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
          Languages    JavaFX
              Action   Piet
          Resources    GO




               GO




Seraf´ V´lez Barrera
     ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction

  GO was designed by Ken Thompson, Rob Pike, Robert Griesemer
  + Contributors + Open Source comunity.
  Features:
      General purpose
      Concise syntax
      Expressive type system
      Concurrency
      Garbage collection
      Fast compilation
      Efficient execution


                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction



  Combines the powerfull and safety of a statically typed compiled
  language with the the expressiveness and convenience of a
  dynamically typed interpreted language.
  Designed as a systems language (for develop app like: Web
  Servers, Browsers, etc).
  Influenced by other languages: C, Modula, Pascal, Python, etc.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                               Languages    JavaFX
                                   Action   Piet
                               Resources    GO


Syntax


     Comments
     /∗ T h i s i s a comment ; no n e s t i n g ∗/
     // So i s t h i s .

     Structs
     type Point s t r u c t { x , y f l o a t }
     f u n c ( p P o i n t ) Abs ( ) f l o a t {
            r e t u r n math . S q r t ( p . x ∗p . x + p . y ∗p . y )
     }




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction   Mercury
                             Languages    JavaFX
                                 Action   Piet
                             Resources    GO


Syntax


     Methods
     type Vector [ ] f l o a t
     f u n c ( v V e c t o r ) Abs ( ) f l o a t {
            sumOfSquares := 0 . 0
            f o r i := r a n g e v {
                    sumOfSquares += v [ i ] ∗ v [ i ]
            }
            r e t u r n math . S q r t ( sumOfSquares )
     }




                   Seraf´ V´lez Barrera
                        ın e              Alternative Programming Languages
Introduction   Mercury
                               Languages    JavaFX
                                   Action   Piet
                               Resources    GO


Syntax

     Interfaces
     type Abser i n t e r f a c e {
         Abs ( ) f l o a t
     }
     var a Abser

     a = P o i n t { 3 , 4}
     p r i n t ( a . Abs ( ) )

     a = V e c t o r { 1 , 2 , 3 , 4}
     p r i n t ( a . Abs ( ) )


                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction   Mercury
                            Languages    JavaFX
                                Action   Piet
                            Resources    GO


Syntax




     Visibility
     ThisNameIsPublic
     thisOneIsNot




                  Seraf´ V´lez Barrera
                       ın e              Alternative Programming Languages
Introduction   Mercury
                                     Languages    JavaFX
                                         Action   Piet
                                     Resources    GO


Developing an app


                      1st Step - Install the environment

  Install C tools:
  sudo apt−g e t i n s t a l l b i s o n gawk g c c l i b c 6 −dev make

  Install mercurial:
  sudo e a s y i n s t a l l m e r c u r i a l

  Fetch the repository:
  hg c l o n e −u r e l e a s e h t t p s : // go . g o o g l e c o d e . com/ hg / go




                           Seraf´ V´lez Barrera
                                ın e              Alternative Programming Languages
Introduction      Mercury
                                          Languages       JavaFX
                                              Action      Piet
                                          Resources       GO


Developing an app




                         1st Step - Install the environment

  Install the environment:
  sudo mv go / / u s r / l o c a l /
  cd / u s r / l o c a l / go / s r c
  . / a l l . bash

  See bash and GO documentation to set up GO Path in the environment.




                               Seraf´ V´lez Barrera
                                    ın e                  Alternative Programming Languages
Introduction   Mercury
                                   Languages    JavaFX
                                       Action   Piet
                                   Resources    GO


Developing an app




                   1st Step - Install the environment

  Fetch last version:
      cd go / s r c
      hg p u l l
      hg u p d a t e r e l e a s e
      . / a l l . bash




                         Seraf´ V´lez Barrera
                              ın e              Alternative Programming Languages
Introduction    Mercury
                                       Languages     JavaFX
                                           Action    Piet
                                       Resources     GO


Developing an app


                                     2nd Step - Code

  We can code the easiest example at last version: “Hello world”
  2.0 :)
  p a c k a g e main

  i m p o r t ” fmt ”

  f u n c main ( ) {
         fmt . P r i n t f ( ” H e l l o w o r l d 2 . 0  n” )
  }




                             Seraf´ V´lez Barrera
                                  ın e               Alternative Programming Languages
Introduction   Mercury
                                Languages    JavaFX
                                    Action   Piet
                                Resources    GO


Developing an app


                     3rd Step - Compile and test

     Compile:
             6g h e l l o w o r l d . go

     Link:
             6 l helloworld .6

     Test:
             . / 6 . out


                      Seraf´ V´lez Barrera
                           ın e              Alternative Programming Languages
Introduction
                  Languages
                      Action
                  Resources


Demos




                                  DEMO!


        Seraf´ V´lez Barrera
             ın e              Alternative Programming Languages
Introduction
                               Languages
                                   Action
                               Resources


Resources


  Go
         Website Go Lang
         Youtube channel Google Developers
  Mercury
         Website
  JavaFX
         Website
  Piet
         Website



                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction
                              Languages
                                  Action
                              Resources


License


  This document have the following license:




  Seraf´ V´lez Barrera – Oficina de Software Libre
       ın e
  serafin.velez.barrera@gmail.com



                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages

More Related Content

What's hot

OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
Darren Tan
 
Object oriented slides
Object oriented slidesObject oriented slides
Object oriented slides
ahad nadeem
 
Lecture 11
Lecture 11Lecture 11
Lecture 11
Abbas Ajmal
 
The Whole Platform A Language Workbench for Eclipse
The Whole Platform A Language Workbench for EclipseThe Whole Platform A Language Workbench for Eclipse
The Whole Platform A Language Workbench for Eclipse
Riccardo Solmi
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
IRJET Journal
 
Mps Presentation
Mps PresentationMps Presentation
Mps Presentation
guestaa97d9
 
From Programming to Modeling And Back Again
From Programming to Modeling And Back AgainFrom Programming to Modeling And Back Again
From Programming to Modeling And Back Again
Markus Voelter
 
plone.app.multilingual
plone.app.multilingual plone.app.multilingual
plone.app.multilingual
Ramon Navarro
 
Anabela Barreiro - Alinhamentos
Anabela Barreiro - AlinhamentosAnabela Barreiro - Alinhamentos
Cross language alignments - challenges guidelines and gold sets
Cross language alignments - challenges guidelines and gold setsCross language alignments - challenges guidelines and gold sets
Cross language alignments - challenges guidelines and gold sets
INESC-ID (Spoken Language Systems Laboratory - L2F)
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Eelco Visser
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharp
HEM Sothon
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
Maarten Balliauw
 
Programming Languages and Program Develompent
Programming Languages and Program DevelompentProgramming Languages and Program Develompent
Programming Languages and Program Develompent
Samudin Kassan
 
Profiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming TechniquesProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming Techniques
Ritu Arora
 
Dev Days, Speech Recognition, LM Aubert
Dev Days, Speech Recognition, LM AubertDev Days, Speech Recognition, LM Aubert
Dev Days, Speech Recognition, LM Aubert
aubertlm
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?
Eelco Visser
 
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
INESC-ID (Spoken Language Systems Laboratory - L2F)
 
Catalan daily goes Catalan
Catalan daily goes CatalanCatalan daily goes Catalan
Catalan daily goes Catalan
Lucy Software and Services
 

What's hot (19)

OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
 
Object oriented slides
Object oriented slidesObject oriented slides
Object oriented slides
 
Lecture 11
Lecture 11Lecture 11
Lecture 11
 
The Whole Platform A Language Workbench for Eclipse
The Whole Platform A Language Workbench for EclipseThe Whole Platform A Language Workbench for Eclipse
The Whole Platform A Language Workbench for Eclipse
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
 
Mps Presentation
Mps PresentationMps Presentation
Mps Presentation
 
From Programming to Modeling And Back Again
From Programming to Modeling And Back AgainFrom Programming to Modeling And Back Again
From Programming to Modeling And Back Again
 
plone.app.multilingual
plone.app.multilingual plone.app.multilingual
plone.app.multilingual
 
Anabela Barreiro - Alinhamentos
Anabela Barreiro - AlinhamentosAnabela Barreiro - Alinhamentos
Anabela Barreiro - Alinhamentos
 
Cross language alignments - challenges guidelines and gold sets
Cross language alignments - challenges guidelines and gold setsCross language alignments - challenges guidelines and gold sets
Cross language alignments - challenges guidelines and gold sets
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler Construction
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharp
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
Programming Languages and Program Develompent
Programming Languages and Program DevelompentProgramming Languages and Program Develompent
Programming Languages and Program Develompent
 
Profiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming TechniquesProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming Techniques
 
Dev Days, Speech Recognition, LM Aubert
Dev Days, Speech Recognition, LM AubertDev Days, Speech Recognition, LM Aubert
Dev Days, Speech Recognition, LM Aubert
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?
 
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
 
Catalan daily goes Catalan
Catalan daily goes CatalanCatalan daily goes Catalan
Catalan daily goes Catalan
 

Viewers also liked

Präs baujournal
Präs baujournalPräs baujournal
Präs baujournalTom Treber
 
大學生之於吃
大學生之於吃大學生之於吃
大學生之於吃songla
 
Präs plank
Präs plankPräs plank
Präs plank
Tom Treber
 
Llibre ksandra
Llibre ksandraLlibre ksandra
Llibre ksandra
guest554a5d
 
Regio alueyhteistyömalli 2012
Regio alueyhteistyömalli 2012Regio alueyhteistyömalli 2012
Regio alueyhteistyömalli 2012Vesa Sarmia
 
Boses Ng Kabataan Competition Paper
Boses Ng Kabataan Competition PaperBoses Ng Kabataan Competition Paper
Boses Ng Kabataan Competition Paper
guest6b6bedc
 
Audit PC content
Audit PC content Audit PC content
Audit PC content
iansadler
 
Presentation1
Presentation1Presentation1
Presentation1Rasha.g
 
Free software
Free softwareFree software
Free software
seravb
 
Protection for Single PCs
Protection for Single PCsProtection for Single PCs
Protection for Single PCs
iansadler
 
Komm 2.0
Komm 2.0Komm 2.0
Komm 2.0
Tom Treber
 
Va\\lue of e-safebusiness solutions
Va\\lue of e-safebusiness solutionsVa\\lue of e-safebusiness solutions
Va\\lue of e-safebusiness solutions
iansadler
 
Network GRC Delivery
Network GRC DeliveryNetwork GRC Delivery
Network GRC Delivery
iansadler
 
C:\Fakepath\Impress
C:\Fakepath\ImpressC:\Fakepath\Impress
C:\Fakepath\Impress
Gaia Mariotti
 
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802Vesa Sarmia
 
19271931 dove-final-presentation-1
19271931 dove-final-presentation-119271931 dove-final-presentation-1
19271931 dove-final-presentation-1
suraj333
 
X ray diffraction
X ray diffractionX ray diffraction
X ray diffraction
Praveen Kumar
 

Viewers also liked (17)

Präs baujournal
Präs baujournalPräs baujournal
Präs baujournal
 
大學生之於吃
大學生之於吃大學生之於吃
大學生之於吃
 
Präs plank
Präs plankPräs plank
Präs plank
 
Llibre ksandra
Llibre ksandraLlibre ksandra
Llibre ksandra
 
Regio alueyhteistyömalli 2012
Regio alueyhteistyömalli 2012Regio alueyhteistyömalli 2012
Regio alueyhteistyömalli 2012
 
Boses Ng Kabataan Competition Paper
Boses Ng Kabataan Competition PaperBoses Ng Kabataan Competition Paper
Boses Ng Kabataan Competition Paper
 
Audit PC content
Audit PC content Audit PC content
Audit PC content
 
Presentation1
Presentation1Presentation1
Presentation1
 
Free software
Free softwareFree software
Free software
 
Protection for Single PCs
Protection for Single PCsProtection for Single PCs
Protection for Single PCs
 
Komm 2.0
Komm 2.0Komm 2.0
Komm 2.0
 
Va\\lue of e-safebusiness solutions
Va\\lue of e-safebusiness solutionsVa\\lue of e-safebusiness solutions
Va\\lue of e-safebusiness solutions
 
Network GRC Delivery
Network GRC DeliveryNetwork GRC Delivery
Network GRC Delivery
 
C:\Fakepath\Impress
C:\Fakepath\ImpressC:\Fakepath\Impress
C:\Fakepath\Impress
 
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
 
19271931 dove-final-presentation-1
19271931 dove-final-presentation-119271931 dove-final-presentation-1
19271931 dove-final-presentation-1
 
X ray diffraction
X ray diffractionX ray diffraction
X ray diffraction
 

Similar to Lenguajes programacionalternativos

Java language is different from other programming languages, How?
Java language is different  from other programming languages, How?Java language is different  from other programming languages, How?
Java language is different from other programming languages, How?
Gyanguide1
 
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Katy Slemon
 
Overview of Java
Overview of JavaOverview of Java
Overview of Java
josemachoco
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac x
Remote Stacx
 
JRuby in a Java World
JRuby in a Java WorldJRuby in a Java World
JRuby in a Java World
Mark Menard
 
Nairuby metaprogramming with ruby
Nairuby metaprogramming with rubyNairuby metaprogramming with ruby
Nairuby metaprogramming with ruby
Nanjekye Joannah
 
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Olga Lavrentieva
 
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
CHOOSE
 
Procedural Programming Of Programming Languages
Procedural Programming Of Programming LanguagesProcedural Programming Of Programming Languages
Procedural Programming Of Programming Languages
Tammy Moncrief
 
DSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentDSL, the absolute weapon for the development
DSL, the absolute weapon for the development
ESUG
 
Overview new programming languages
Overview new programming languagesOverview new programming languages
Overview new programming languages
umoren
 
java vs javascript demystifying the differences | web creative solution
java vs javascript demystifying the differences | web creative solution java vs javascript demystifying the differences | web creative solution
java vs javascript demystifying the differences | web creative solution
seowci
 
Dart: A Replacement for JavaScript and Why You Should Care
Dart: A Replacement for JavaScript and Why You Should CareDart: A Replacement for JavaScript and Why You Should Care
Dart: A Replacement for JavaScript and Why You Should Care
Kevin Gisi
 
Intro flash cards
Intro flash cardsIntro flash cards
Intro flash cards
lorhow58
 
Intro flash cards
Intro flash cardsIntro flash cards
Intro flash cards
lorhow58
 
java-vs-java-script-demystifying-the-differences | web creative solution
java-vs-java-script-demystifying-the-differences | web creative solution java-vs-java-script-demystifying-the-differences | web creative solution
java-vs-java-script-demystifying-the-differences | web creative solution
seowci
 
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
Digital English Language Lab
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRuby
Brian Sam-Bodden
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
Rodrigo Lima
 
Entrepreneur’s guide to programming
Entrepreneur’s guide to programmingEntrepreneur’s guide to programming
Entrepreneur’s guide to programming
Chris Callahan
 

Similar to Lenguajes programacionalternativos (20)

Java language is different from other programming languages, How?
Java language is different  from other programming languages, How?Java language is different  from other programming languages, How?
Java language is different from other programming languages, How?
 
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
 
Overview of Java
Overview of JavaOverview of Java
Overview of Java
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac x
 
JRuby in a Java World
JRuby in a Java WorldJRuby in a Java World
JRuby in a Java World
 
Nairuby metaprogramming with ruby
Nairuby metaprogramming with rubyNairuby metaprogramming with ruby
Nairuby metaprogramming with ruby
 
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
 
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
 
Procedural Programming Of Programming Languages
Procedural Programming Of Programming LanguagesProcedural Programming Of Programming Languages
Procedural Programming Of Programming Languages
 
DSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentDSL, the absolute weapon for the development
DSL, the absolute weapon for the development
 
Overview new programming languages
Overview new programming languagesOverview new programming languages
Overview new programming languages
 
java vs javascript demystifying the differences | web creative solution
java vs javascript demystifying the differences | web creative solution java vs javascript demystifying the differences | web creative solution
java vs javascript demystifying the differences | web creative solution
 
Dart: A Replacement for JavaScript and Why You Should Care
Dart: A Replacement for JavaScript and Why You Should CareDart: A Replacement for JavaScript and Why You Should Care
Dart: A Replacement for JavaScript and Why You Should Care
 
Intro flash cards
Intro flash cardsIntro flash cards
Intro flash cards
 
Intro flash cards
Intro flash cardsIntro flash cards
Intro flash cards
 
java-vs-java-script-demystifying-the-differences | web creative solution
java-vs-java-script-demystifying-the-differences | web creative solution java-vs-java-script-demystifying-the-differences | web creative solution
java-vs-java-script-demystifying-the-differences | web creative solution
 
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRuby
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
 
Entrepreneur’s guide to programming
Entrepreneur’s guide to programmingEntrepreneur’s guide to programming
Entrepreneur’s guide to programming
 

More from seravb

Scraping
ScrapingScraping
Scraping
seravb
 
Gtk-RecordMyDesktop
Gtk-RecordMyDesktopGtk-RecordMyDesktop
Gtk-RecordMyDesktop
seravb
 
Cómo reciclar equipos y no morir en el intento
Cómo reciclar equipos y no morir en el intentoCómo reciclar equipos y no morir en el intento
Cómo reciclar equipos y no morir en el intento
seravb
 
Scrum
ScrumScrum
Scrum
seravb
 
Final CUSL: Presentación
Final CUSL: PresentaciónFinal CUSL: Presentación
Final CUSL: Presentación
seravb
 
4ºHackathón: Presentación
4ºHackathón: Presentación4ºHackathón: Presentación
4ºHackathón: Presentación
seravb
 
3er Hackathon: Presentación de cambios
3er Hackathon: Presentación de cambios3er Hackathon: Presentación de cambios
3er Hackathon: Presentación de cambios
seravb
 
3er Hackathon: Preparacion Asistentes Hackathón
3er Hackathon: Preparacion Asistentes Hackathón3er Hackathon: Preparacion Asistentes Hackathón
3er Hackathon: Preparacion Asistentes Hackathón
seravb
 
3er Hackathon: Presentación Hackathón Inicial
3er Hackathon: Presentación Hackathón Inicial3er Hackathon: Presentación Hackathón Inicial
3er Hackathon: Presentación Hackathón Inicial
seravb
 
Software libre
Software libreSoftware libre
Software libre
seravb
 
Memorias ram
Memorias ramMemorias ram
Memorias ram
seravb
 

More from seravb (11)

Scraping
ScrapingScraping
Scraping
 
Gtk-RecordMyDesktop
Gtk-RecordMyDesktopGtk-RecordMyDesktop
Gtk-RecordMyDesktop
 
Cómo reciclar equipos y no morir en el intento
Cómo reciclar equipos y no morir en el intentoCómo reciclar equipos y no morir en el intento
Cómo reciclar equipos y no morir en el intento
 
Scrum
ScrumScrum
Scrum
 
Final CUSL: Presentación
Final CUSL: PresentaciónFinal CUSL: Presentación
Final CUSL: Presentación
 
4ºHackathón: Presentación
4ºHackathón: Presentación4ºHackathón: Presentación
4ºHackathón: Presentación
 
3er Hackathon: Presentación de cambios
3er Hackathon: Presentación de cambios3er Hackathon: Presentación de cambios
3er Hackathon: Presentación de cambios
 
3er Hackathon: Preparacion Asistentes Hackathón
3er Hackathon: Preparacion Asistentes Hackathón3er Hackathon: Preparacion Asistentes Hackathón
3er Hackathon: Preparacion Asistentes Hackathón
 
3er Hackathon: Presentación Hackathón Inicial
3er Hackathon: Presentación Hackathón Inicial3er Hackathon: Presentación Hackathón Inicial
3er Hackathon: Presentación Hackathón Inicial
 
Software libre
Software libreSoftware libre
Software libre
 
Memorias ram
Memorias ramMemorias ram
Memorias ram
 

Recently uploaded

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 

Recently uploaded (20)

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 

Lenguajes programacionalternativos

  • 1. Introduction Languages Action Resources Alternative Programming Languages Mercury - JavaFX - Piet - Go Seraf´ V´lez Barrera ın e serafin.velez.barrera@gmail.com Universidad de Granada 11 de Enero de 2011 Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 2. Introduction Languages Action Resources Index 1 Introduction 2 Languages Mercury JavaFX Piet GO 3 1,2,3... Action! 4 Resources Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 3. Introduction Languages Action Resources What is a programming language Definition A programming language is an artificial language designed to communicate instructions to a machine Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 4. Introduction Languages Action Resources Types 1 General purpose: C, C++, Java, etc Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 5. Introduction Languages Action Resources Types 1 General purpose: C, C++, Java, etc 2 Specific language: VHDL Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 6. Introduction Languages Action Resources Types 1 General purpose: C, C++, Java, etc 2 Specific language: VHDL 3 Others: Artistic, etc Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 7. Introduction Mercury Languages JavaFX Action Piet Resources GO Mercury Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 8. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction Designed and implemented by a small group of researchers at the University of Melbourne (Australia) between this group there are: Fergus Henderson, Thomas Conway, etc. Based on the paradigm of purely declarative programming, and was designed to be useful for the development of large and robust “real-world” applications. It improves on existing logic programming languages by providing increased productivity, reliability and efficiency, and by avoiding the need for non-logical program constructs. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 9. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction This language differentiates of the rest by the concept to program. Why? Because is a logical programming and the syntax is similar to Prolog, with some additional declarations for types, modes, determinism, the module system, and pragmas, and with the distinction that function symbols may stand also for invocations of user- defined functions as well as for data constructors. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 10. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Mercury have a syntax similar to Pascal but this language use terms like: Tokens Predicates because is a logical programming language and is: A strongly typed language: :− t y p e l i s t (T) −−−> [ ] ; [ T | l i s t (T ) ] . A strongly moded language: :− mode append ( i n , i n , o u t ) . Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 11. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app In other Workshop Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 12. Introduction Mercury Languages JavaFX Action Piet Resources GO Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 13. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction JavaFX is a language that is oriented to create RIA app’s (RIA = Rich Internet Application) and this app’s integrate the simplicity of a web app and the potentially of a desktop app. JavaFX include various technologys like JavaFX Script, JavaFX Mobile, and JavaFX TV. We are going to see JavaFX Script, apart of to be a scripting language is a language to desing User Interfaces, so have the powerfull of a script with the design of interfaces in graphic mode. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 14. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app In other Workshop - Maybe later there will be a demo. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 15. Introduction Mercury Languages JavaFX Action Piet Resources GO Piet Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 16. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction Piet (named after painter Piet Mondrian) is one of the most known esoteric programming languages, which uses images as source code. The language uses 20 colors, and the commands are encoded as changes of color between adjacent pixels. Piet was created by David Morgan-Mar, who aimed for a language which would have its code look like abstract art. The language hasn’t spawned any dialects; there are several implementations, which differ slightly, mainly in the way the colors are processed. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 17. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app In other Workshop - Maybe later there will be some examples. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 18. Introduction Mercury Languages JavaFX Action Piet Resources GO GO Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 19. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction GO was designed by Ken Thompson, Rob Pike, Robert Griesemer + Contributors + Open Source comunity. Features: General purpose Concise syntax Expressive type system Concurrency Garbage collection Fast compilation Efficient execution Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 20. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction Combines the powerfull and safety of a statically typed compiled language with the the expressiveness and convenience of a dynamically typed interpreted language. Designed as a systems language (for develop app like: Web Servers, Browsers, etc). Influenced by other languages: C, Modula, Pascal, Python, etc. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 21. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Comments /∗ T h i s i s a comment ; no n e s t i n g ∗/ // So i s t h i s . Structs type Point s t r u c t { x , y f l o a t } f u n c ( p P o i n t ) Abs ( ) f l o a t { r e t u r n math . S q r t ( p . x ∗p . x + p . y ∗p . y ) } Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 22. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Methods type Vector [ ] f l o a t f u n c ( v V e c t o r ) Abs ( ) f l o a t { sumOfSquares := 0 . 0 f o r i := r a n g e v { sumOfSquares += v [ i ] ∗ v [ i ] } r e t u r n math . S q r t ( sumOfSquares ) } Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 23. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Interfaces type Abser i n t e r f a c e { Abs ( ) f l o a t } var a Abser a = P o i n t { 3 , 4} p r i n t ( a . Abs ( ) ) a = V e c t o r { 1 , 2 , 3 , 4} p r i n t ( a . Abs ( ) ) Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 24. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Visibility ThisNameIsPublic thisOneIsNot Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 25. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 1st Step - Install the environment Install C tools: sudo apt−g e t i n s t a l l b i s o n gawk g c c l i b c 6 −dev make Install mercurial: sudo e a s y i n s t a l l m e r c u r i a l Fetch the repository: hg c l o n e −u r e l e a s e h t t p s : // go . g o o g l e c o d e . com/ hg / go Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 26. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 1st Step - Install the environment Install the environment: sudo mv go / / u s r / l o c a l / cd / u s r / l o c a l / go / s r c . / a l l . bash See bash and GO documentation to set up GO Path in the environment. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 27. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 1st Step - Install the environment Fetch last version: cd go / s r c hg p u l l hg u p d a t e r e l e a s e . / a l l . bash Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 28. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 2nd Step - Code We can code the easiest example at last version: “Hello world” 2.0 :) p a c k a g e main i m p o r t ” fmt ” f u n c main ( ) { fmt . P r i n t f ( ” H e l l o w o r l d 2 . 0 n” ) } Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 29. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 3rd Step - Compile and test Compile: 6g h e l l o w o r l d . go Link: 6 l helloworld .6 Test: . / 6 . out Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 30. Introduction Languages Action Resources Demos DEMO! Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 31. Introduction Languages Action Resources Resources Go Website Go Lang Youtube channel Google Developers Mercury Website JavaFX Website Piet Website Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 32. Introduction Languages Action Resources License This document have the following license: Seraf´ V´lez Barrera – Oficina de Software Libre ın e serafin.velez.barrera@gmail.com Seraf´ V´lez Barrera ın e Alternative Programming Languages