SlideShare a Scribd company logo
1 of 43
Download to read offline
Integrated Language
     Definition Testing
Lennart Kats   Delft University of Technology
Rob Vermaas    LogicBlox
Eelco Visser   Delft University of Technology
Language Workbenches
Testing




“DOES THE TYPE CHECKER CATCH THIS?”
Testing




“DOES THIS HYPERLINK POINT TO THE RIGHT PLACE?”
parsing
                                 abstract syntax
                                 syntax error marking
                        Syntax




            Semantics               IDE

type checking                          errors/warnings
compilation                            reference resolving
interpretation                         content completion
execution                              refactoring
                                       views
How to test
language services?
IMPLEMENT
FEATURE, TEST WITH
                               DOESN’T WORK
     EXAMPLE




                                   DISCARD
               CLOSE ENOUGH.         TEST
How can we
systematically test
language definitions?
General-Purpose
 Testing Tools?
A Test Input
module Example

function foo() {
  bar();
}

function bar() {

}
Another Test Input
module Example

function foo() {
  foo();
}

function bar() {

}
A Negative Test Case
module Example

function foo() {
  baz();
}

function bar() {

}
Automated Testing
            Infrastructure
                                Parser

      Test            Test     Compiler
      input           script

                                 IDE
+ simple
– language-specific script
– limited expressiveness
– boilerplate code
– ...
Can we design a general
 solution for specifying
     language tests?
Yes We Can

Generic test specification language
                +
         Parametrization
Language-Parametric
Testing Language (LPTL)
module my-tests

language mobl

test Cannot assign an integer to a string [[
  module Example

  <test input>
  function test() {
    var s : String = 1;
  }
]] 1 error
LPTL Opportunities


     Expressiveness


     Tool support
LPTL Opportunities (1)


Module system
      +
GUI Test Runner
LPTL Opportunities (2)


 IDE support
   for test
specifications
LPTL Opportunities (3)


Immediate
   test
evaluation
LPTL Opportunities (4)


IDE support
  for test
   inputs
LPTL Opportunities (5)
              setup [[
                module Example

               imports stuff

 Reduced        function test() {
                  [[...]]
boilerplate     }
              ]]

              test Cannot assign ... [[
                var s : String = 1;
              ]] 1 error
LPTL Opportunities (6)
                  1 error

                  2 warnings

                  /expected here/

                  parse fails
  Wide set of
test conditions   complete ... to ...

                  resolve ... to ...

                  refactor ... to ...

                  build ...

                  run ...
Testing Syntax (1)

 test Proper declaration [[
   var s : String = "a";
 ]] parse

 test Java-like declaration [[
   String s = "a";
 ]] parse fails
Testing Syntax (2)

 test Proper declaration [[
   var s : String = "a";
 ]] parse to VarDecl("s", _)

 test Precedence [[
   3 + 1 * 2
 ]] parse to [[
   3 + (1 * 2)
 ]]
Testing Error Markers


   test Variable declaration [[
     var s : String = "a";
   ]] 0 errors

   test Bad variable declaration [[
     var s : String = 25;
   ]] 1 error /wrong type/
Testing References
test [[
  module Example

 function foo() {
   bar();
   [[bar]]();
 }

 function [[bar]]() {
          bar() {

  }
]] resolve ...to #2
           #1 to ...
Testing Code
    Generation..?
test [[
   function foo() {
     return 3;
   }
]] build generate-javascript to [[
  var foo = function foo() {
   [[bar]]();
     return 3;
  };
   function bar() {
]]
   }
]]
Testing Execution
setup [[
  application execution

  function test() : Num {
    // init
    [[...]]
  }
]]

test Arithmetic [[
  return 1 + 1;
]] run run-test to 2
Implementation


 Spoofax Testing Language

      (spoofax.org)
Implementation
       Techniques

Language embedding

Dynamic instantiation of language services
Language Embedding:
      Syntax
 1 module tests
 2 language mobl

   test Java-like declaration [[
 3 ]]String s = "a";
      parse fails
Language Embedding:
 Semantics & IDE (1)

  test A function call [[
    function foo() {
                            Mobl
    }
    fo|
  ]]

        Content complete
Language Embedding:
 Semantics & IDE (2)

  test A function call [[
    function foo() {
                            Mobl
    }
    notfoo();
  ]]


   No condition;
   error not expected
Dynamic Language Service
     Instantiation


                      Mobl
Dynamic Language Service
     Instantiation

Language registry

Language consists of services

Services have functional interfaces
Dynamic Language Service
     Instantiation
                           Test
  “mobl”                   input


  Language      Mobl
                           Parser
   registry   language


                         Completion
                           service
Reflection

+ simple
+ no scripting required
+ IDE helps avoid errors
+ little boilerplate code
+ expressiveness
Conclusions
• General abstraction for language testing
• Explored opportunities in expressiveness
  and tool support




              www.spoofax.org
ADDITIONAL
  SLIDES
Related:
Automatic Test Generation

• Generate tests from grammar
• Requires oracle
• Complementary to our approach
Self-Application

language Spoofax-Testing

test Testing testing [[[
   language Mobl
   test Testing [[
     module y
   ]]
]]]
The Spoofax Language
      Workbench [OOPSLA 2010]
• Integrated environment for language
  definition
• Define syntax, semantics, IDE
• Based on Eclipse
  www.spoofax.org

More Related Content

What's hot

Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#Dave Fancher
 
Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#IndyMobileNetDev
 
Programming Language
Programming  LanguageProgramming  Language
Programming LanguageAdeel Hamid
 
Imperative programming
Imperative programmingImperative programming
Imperative programmingEdward Blurock
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageGanesh Samarthyam
 
difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#Sireesh K
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionEelco Visser
 
Programming paradigm
Programming paradigmProgramming paradigm
Programming paradigmbusyking03
 

What's hot (18)

Xtext Webinar
Xtext WebinarXtext Webinar
Xtext Webinar
 
Intro dotnet
Intro dotnetIntro dotnet
Intro dotnet
 
Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#
 
Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#
 
Create Your Own Language
Create Your Own LanguageCreate Your Own Language
Create Your Own Language
 
LIL Presentation
LIL PresentationLIL Presentation
LIL Presentation
 
C-Sharp 6.0 ver2
C-Sharp 6.0 ver2C-Sharp 6.0 ver2
C-Sharp 6.0 ver2
 
Programming Language
Programming  LanguageProgramming  Language
Programming Language
 
Python for Swift
Python for SwiftPython for Swift
Python for Swift
 
C++vs java
C++vs javaC++vs java
C++vs java
 
Intro dotnet
Intro dotnetIntro dotnet
Intro dotnet
 
Imperative programming
Imperative programmingImperative programming
Imperative programming
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
 
difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#
 
Go programing language
Go programing languageGo programing language
Go programing language
 
C# language
C# languageC# language
C# language
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: Introduction
 
Programming paradigm
Programming paradigmProgramming paradigm
Programming paradigm
 

Viewers also liked

Software testing definition
Software testing definitionSoftware testing definition
Software testing definitionHiro Mia
 
Test System Architectures using Advanced Standardized Test Languages
Test System Architectures using Advanced Standardized Test LanguagesTest System Architectures using Advanced Standardized Test Languages
Test System Architectures using Advanced Standardized Test LanguagesAxel Rennoch
 
Challenges and solutions in mobile and cloud computing testing - ZANEC
Challenges and solutions in mobile and cloud computing testing  - ZANECChallenges and solutions in mobile and cloud computing testing  - ZANEC
Challenges and solutions in mobile and cloud computing testing - ZANECSatya Kaliki
 
Connected Car Services - Generalizing and Simplifying Telematics
Connected Car Services - Generalizing and Simplifying TelematicsConnected Car Services - Generalizing and Simplifying Telematics
Connected Car Services - Generalizing and Simplifying TelematicsToralf Richter
 
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...Leon Anavi
 
Functional testing
Functional testingFunctional testing
Functional testing99tests
 
Miller using scn egg counts and hg type testing
Miller using scn egg counts and hg type testingMiller using scn egg counts and hg type testing
Miller using scn egg counts and hg type testingnacaa
 
Glimpse and Benefits of Testing
Glimpse and Benefits of TestingGlimpse and Benefits of Testing
Glimpse and Benefits of TestingSourabh Kasliwal
 
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)Leon Anavi
 
Design and testing of disc type hybrid turbine pump
Design and testing  of disc type hybrid turbine pumpDesign and testing  of disc type hybrid turbine pump
Design and testing of disc type hybrid turbine pumpDenny John
 
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
Acceptance & Functional Testing with Codeception - SunshinePHP 2016Acceptance & Functional Testing with Codeception - SunshinePHP 2016
Acceptance & Functional Testing with Codeception - SunshinePHP 2016Joe Ferguson
 
Frankenstein final
Frankenstein finalFrankenstein final
Frankenstein finalAmy Brinkley
 

Viewers also liked (20)

Software testing definition
Software testing definitionSoftware testing definition
Software testing definition
 
Test System Architectures using Advanced Standardized Test Languages
Test System Architectures using Advanced Standardized Test LanguagesTest System Architectures using Advanced Standardized Test Languages
Test System Architectures using Advanced Standardized Test Languages
 
OTA
OTAOTA
OTA
 
Challenges and solutions in mobile and cloud computing testing - ZANEC
Challenges and solutions in mobile and cloud computing testing  - ZANECChallenges and solutions in mobile and cloud computing testing  - ZANEC
Challenges and solutions in mobile and cloud computing testing - ZANEC
 
Connected Car Services - Generalizing and Simplifying Telematics
Connected Car Services - Generalizing and Simplifying TelematicsConnected Car Services - Generalizing and Simplifying Telematics
Connected Car Services - Generalizing and Simplifying Telematics
 
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...
 
Functional testing
Functional testingFunctional testing
Functional testing
 
Skillwise - 11 cat.ppt
Skillwise - 11 cat.pptSkillwise - 11 cat.ppt
Skillwise - 11 cat.ppt
 
Functional UI Testing
Functional UI TestingFunctional UI Testing
Functional UI Testing
 
Type Cross browsers testing
Type Cross browsers testingType Cross browsers testing
Type Cross browsers testing
 
Re Type Testing
Re Type TestingRe Type Testing
Re Type Testing
 
Miller using scn egg counts and hg type testing
Miller using scn egg counts and hg type testingMiller using scn egg counts and hg type testing
Miller using scn egg counts and hg type testing
 
Glimpse and Benefits of Testing
Glimpse and Benefits of TestingGlimpse and Benefits of Testing
Glimpse and Benefits of Testing
 
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
 
Type Testing
Type TestingType Testing
Type Testing
 
Testing type
Testing typeTesting type
Testing type
 
Compatibility Testing
Compatibility TestingCompatibility Testing
Compatibility Testing
 
Design and testing of disc type hybrid turbine pump
Design and testing  of disc type hybrid turbine pumpDesign and testing  of disc type hybrid turbine pump
Design and testing of disc type hybrid turbine pump
 
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
Acceptance & Functional Testing with Codeception - SunshinePHP 2016Acceptance & Functional Testing with Codeception - SunshinePHP 2016
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
 
Frankenstein final
Frankenstein finalFrankenstein final
Frankenstein final
 

Similar to Integrated Language Definition Testing: Enabling Test-Driven Language Development (SPLASH 2012)

What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)Moaid Hathot
 
Code Review In Testing View
Code Review In Testing ViewCode Review In Testing View
Code Review In Testing ViewSQABD
 
Kotlin: Challenges in JVM language design
Kotlin: Challenges in JVM language designKotlin: Challenges in JVM language design
Kotlin: Challenges in JVM language designAndrey Breslav
 
Testes? Mas isso não aumenta o tempo de projecto? Não quero...
Testes? Mas isso não aumenta o tempo de projecto? Não quero...Testes? Mas isso não aumenta o tempo de projecto? Não quero...
Testes? Mas isso não aumenta o tempo de projecto? Não quero...Comunidade NetPonto
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptdavejohnson
 
Become Jythonic in FDMEE (KSCOPE15)
Become Jythonic in FDMEE (KSCOPE15)Become Jythonic in FDMEE (KSCOPE15)
Become Jythonic in FDMEE (KSCOPE15)Francisco Amores
 
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesSchwannden Kuo
 
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Guillaume Laforge
 
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,..."Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...Vladimir Ivanov
 
How to Review your Translation with 2 Free and Open Source QA Tools
How to Review your Translation with 2 Free and Open Source QA ToolsHow to Review your Translation with 2 Free and Open Source QA Tools
How to Review your Translation with 2 Free and Open Source QA ToolsQabiria
 
Concepts of JetBrains MPS
Concepts of JetBrains MPSConcepts of JetBrains MPS
Concepts of JetBrains MPSVaclav Pech
 
javabasics_ programming development chapter01
javabasics_ programming development chapter01javabasics_ programming development chapter01
javabasics_ programming development chapter01Udeshg90
 
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...Mohammed Kharma
 
PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Languagezefhemel
 
Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011Jimmy Schementi
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDDDror Helper
 
Introduction to Kotlin for Android developers
Introduction to Kotlin for Android developersIntroduction to Kotlin for Android developers
Introduction to Kotlin for Android developersMohamed Wael
 

Similar to Integrated Language Definition Testing: Enabling Test-Driven Language Development (SPLASH 2012) (20)

What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)
 
Code Review In Testing View
Code Review In Testing ViewCode Review In Testing View
Code Review In Testing View
 
PL/SQL unit testing with Ruby
PL/SQL unit testing with RubyPL/SQL unit testing with Ruby
PL/SQL unit testing with Ruby
 
Os Welton
Os WeltonOs Welton
Os Welton
 
Kotlin: Challenges in JVM language design
Kotlin: Challenges in JVM language designKotlin: Challenges in JVM language design
Kotlin: Challenges in JVM language design
 
Testes? Mas isso não aumenta o tempo de projecto? Não quero...
Testes? Mas isso não aumenta o tempo de projecto? Não quero...Testes? Mas isso não aumenta o tempo de projecto? Não quero...
Testes? Mas isso não aumenta o tempo de projecto? Não quero...
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScript
 
Become Jythonic in FDMEE (KSCOPE15)
Become Jythonic in FDMEE (KSCOPE15)Become Jythonic in FDMEE (KSCOPE15)
Become Jythonic in FDMEE (KSCOPE15)
 
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
 
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007
 
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,..."Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
 
How to Review your Translation with 2 Free and Open Source QA Tools
How to Review your Translation with 2 Free and Open Source QA ToolsHow to Review your Translation with 2 Free and Open Source QA Tools
How to Review your Translation with 2 Free and Open Source QA Tools
 
F# 101
F# 101F# 101
F# 101
 
Concepts of JetBrains MPS
Concepts of JetBrains MPSConcepts of JetBrains MPS
Concepts of JetBrains MPS
 
javabasics_ programming development chapter01
javabasics_ programming development chapter01javabasics_ programming development chapter01
javabasics_ programming development chapter01
 
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
 
PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Language
 
Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Introduction to Kotlin for Android developers
Introduction to Kotlin for Android developersIntroduction to Kotlin for Android developers
Introduction to Kotlin for Android developers
 

Recently uploaded

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Integrated Language Definition Testing: Enabling Test-Driven Language Development (SPLASH 2012)