SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Design concerns for concrete syntax
Concrete syntax Quorum A. Stefik (University of Nevada),
S. Siebert (Washington School of Medicine)
integer a variable that holds whole values
if doing something after verifying that something is true
Boolean equals checking whether one thing is the same as another thing
array a variable that references one or more values in a row
class representing something in the computer that exists in the real world
method a list of instructions that represents a tangible behavior
general-purpose language
public a part of a computer program that can be accessed by another program
try attempting to run code that may not run correctly
Concrete syntax Quorum
notion non-programmerprogrammer score score
integer numberinteger
number
real
integer
real
8.38
6.20
5.88
6.63
6.46
5.91
float numberdecimal
number
float
decimal
rational
6.81
6.79
6.68
6.70
6.43
6.07
Concrete syntax Quorum
Boolean conditionboolean
bool
binary
logic
binary
7.68
7.63
6.25
5.32
5.26
5.11
string charactersstring
text
charstring
text
charstring
7.48
7.23
7.21
6.37
6.15
5.89
notion non-programmerprogrammer score score
Concrete syntax Quorum
assignment x = 1024x = 1024
x is 1024
x =: 1024
x is 1024
x : 1024
7.87
5.77
5.45
6.90
6.32
5.51
type cast use t as Doghandle t as Dog
use t as Dog
cast(t, Dog)
handle t as Dog
apply Dog to t
6.15
5.99
5.85
5.90
5.82
5.46
in Java: (Dog)t
notion non-programmerprogrammer score score
Concrete syntax Quorum
increment x = x + 1x = x + 1
x++
x += 1
x + 1
raise x
8.37
7.44
7.14
7.06
5.93
5.49
if statement ifif
when
whenever
when
require
8.37
7.49
6.86
6.89
6.59
6.46
notion non-programmerprogrammer score score
Concrete syntax Quorum
notion non-programmerprogrammer
class objectobject structure class structure framework
parent sourcesource parent foundation foundation parentsuper
this selfself me myself myself me
abstract blueprintprototype frame blueprint frame model
return providereturn report provide report return
constant permanentconstant const permanent constant const
try checktest check try test on error
static constantfixed constant static permanent fixed
Viscosity of notations
print ”text1” in bold
print ”text2” in bold + italic
print ”text3” in bold + red
print ”text4” in bold
introduce “styles”
style MyStyle is bold
using MyStyle {
print “text1”
print “text2” in italic
print “text3” in red
print “text4”
}
can be easily changed for all usages
modify the style of several items at once
no need to change the style of each individual item repetition viscosity
repetition viscosity
Viscosity of notations
knock-on viscosity
repetition viscosity
scope viscosity
violates internal constrains in the programchange in code
their resolution violates further constraints
change in size of input data requires changes to program structure
Turbo Pascal didn’t allow for
dynamic arrays
single action within model requires many repetitive actions
Writability and readability
writable syntax
users
not necessarily readable
tool support
readable syntax
can be written effectively
can be read effectively
concise
have to type less
editing support from IDE  writability of syntax
code completion
quickfixes
a more concise syntax
tables emphasize readability over writability
Writability and readability APL “A Programming Language”
central datatype multidimensional array
to represent most functions and operatorsspecial graphic symbols
very concise code
IBM 2741 special keyboard
Writability and readability MUMPS
Massachusetts General
Hospital Utility Multi-
Programming System
no reserved words
abbreviations for concepts
no priority of arithmetic operations
keywords can be used as identifiers
2+3*10 50
Writability and readability Piet esoteric language
program that prints
“Hello, world!”
Learnability and effectiveness
learnable syntax
conceptsthe more
effective syntax
useful for novices
can be “explored” by exploiting IDE support
“press Ctrl+Space
and the tool will
tell you what you
can type next”
have direct meaning in the domain
the easier to learn the language
after learning the language
users can express domain problems effectively
Multiple notations
different syntaxes for the same abstract syntax
let users choose
more learnable and verbosebeginners
more effective syntaxexperienced
easy to define several notations
projectional editors
IDE supportability SQL
SELECT field1, field2
FROM table1
WHERE ...
FROM table1
SELECT field1, field2
WHERE ...
textual languages syntax can be supported by IDE
code completion
when typing this code,
a user can’t get any support from IDE
because table has not yet been specified
a better syntax
with respect to IDE support
IDE supportability functional languages
advantage in terms of IDE support
function call
in either case, function comes first
f(a,b,c)
a.f(b,c)
alternative notation first argument before the dot (optional syntax)
(f a b c)
after the user types “a.”
suggest all functions available for the type of acode completion
much better explorability of the language

Contenu connexe

Tendances

Tendances (20)

CS152 Programming Paradigm
CS152 Programming Paradigm CS152 Programming Paradigm
CS152 Programming Paradigm
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
 
Importance of the quality of code
Importance of the quality of codeImportance of the quality of code
Importance of the quality of code
 
Text Editors and IDEs
Text Editors and IDEsText Editors and IDEs
Text Editors and IDEs
 
Programming paradigms
Programming paradigmsProgramming paradigms
Programming paradigms
 
Programming Languages
Programming LanguagesProgramming Languages
Programming Languages
 
Quick Intro to Clean Coding
Quick Intro to Clean CodingQuick Intro to Clean Coding
Quick Intro to Clean Coding
 
SD & D Implementation
SD & D ImplementationSD & D Implementation
SD & D Implementation
 
SD & D Types of programming language
SD & D Types of programming languageSD & D Types of programming language
SD & D Types of programming language
 
Jsx language-notes
Jsx language-notesJsx language-notes
Jsx language-notes
 
Programming paradigm and web programming
Programming paradigm and web programmingProgramming paradigm and web programming
Programming paradigm and web programming
 
Ch07 Programming for Security Professionals
Ch07 Programming for Security ProfessionalsCh07 Programming for Security Professionals
Ch07 Programming for Security Professionals
 
WordCamp Pune 2017- WordPress Coding standards
WordCamp Pune 2017- WordPress Coding standardsWordCamp Pune 2017- WordPress Coding standards
WordCamp Pune 2017- WordPress Coding standards
 
Architecting Domain-Specific Languages
Architecting Domain-Specific LanguagesArchitecting Domain-Specific Languages
Architecting Domain-Specific Languages
 
Basics of c# by sabir
Basics of c# by sabirBasics of c# by sabir
Basics of c# by sabir
 
Error hanadling in c programming presentation
Error hanadling in c programming presentationError hanadling in c programming presentation
Error hanadling in c programming presentation
 
Best Practices of Software Development
Best Practices of Software DevelopmentBest Practices of Software Development
Best Practices of Software Development
 
Intro1
Intro1Intro1
Intro1
 
over all view programming to computer
over all view programming to computer over all view programming to computer
over all view programming to computer
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 

Similaire à Design concerns for concrete syntax

Software development slides
Software development slidesSoftware development slides
Software development slides
iarthur
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
Roopesh Jhurani
 

Similaire à Design concerns for concrete syntax (20)

FaSaT An Interoperable Test Automation Solution
FaSaT An Interoperable Test Automation SolutionFaSaT An Interoperable Test Automation Solution
FaSaT An Interoperable Test Automation Solution
 
Envisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesEnvisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
 
Mit4021 c# and .net
Mit4021   c# and .netMit4021   c# and .net
Mit4021 c# and .net
 
Training 8051Report
Training 8051ReportTraining 8051Report
Training 8051Report
 
C++ programing lanuage
C++ programing lanuageC++ programing lanuage
C++ programing lanuage
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
Implementing Refactorings in IntelliJ IDEA
Implementing Refactorings in IntelliJ IDEAImplementing Refactorings in IntelliJ IDEA
Implementing Refactorings in IntelliJ IDEA
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 
Modern C++
Modern C++Modern C++
Modern C++
 
Illustrated Code (ASE 2021)
Illustrated Code (ASE 2021)Illustrated Code (ASE 2021)
Illustrated Code (ASE 2021)
 
How to do code review and use analysis tool in software development
How to do code review and use analysis tool in software developmentHow to do code review and use analysis tool in software development
How to do code review and use analysis tool in software development
 
FULL DOCUMENT.docx
FULL DOCUMENT.docxFULL DOCUMENT.docx
FULL DOCUMENT.docx
 
Differences between method overloading and method overriding
Differences between method overloading and method overridingDifferences between method overloading and method overriding
Differences between method overloading and method overriding
 
Code review
Code reviewCode review
Code review
 
Automation Testing theory notes.pptx
Automation Testing theory notes.pptxAutomation Testing theory notes.pptx
Automation Testing theory notes.pptx
 
Tools for the Toolmakers
Tools for the ToolmakersTools for the Toolmakers
Tools for the Toolmakers
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
 
50120140503001
5012014050300150120140503001
50120140503001
 
50120140503001
5012014050300150120140503001
50120140503001
 
50120140503001
5012014050300150120140503001
50120140503001
 

Plus de Mikhail Barash

Plus de Mikhail Barash (20)

MODELS 2020 Tutorial on MPS - Supplementary Material 8 - TextGen
MODELS 2020 Tutorial on MPS - Supplementary Material 8 - TextGen MODELS 2020 Tutorial on MPS - Supplementary Material 8 - TextGen
MODELS 2020 Tutorial on MPS - Supplementary Material 8 - TextGen
 
MODELS 2020 Tutorial on MPS - Supplementary Material 5 - Creating concept Ent...
MODELS 2020 Tutorial on MPS - Supplementary Material 5 - Creating concept Ent...MODELS 2020 Tutorial on MPS - Supplementary Material 5 - Creating concept Ent...
MODELS 2020 Tutorial on MPS - Supplementary Material 5 - Creating concept Ent...
 
MODELS 2020 Tutorial on MPS - Supplementary Material 3 - Creating editors for...
MODELS 2020 Tutorial on MPS - Supplementary Material 3 - Creating editors for...MODELS 2020 Tutorial on MPS - Supplementary Material 3 - Creating editors for...
MODELS 2020 Tutorial on MPS - Supplementary Material 3 - Creating editors for...
 
MODELS 2020 Tutorial on MPS - Supplementary Material 1 - Creating concept Entity
MODELS 2020 Tutorial on MPS - Supplementary Material 1 - Creating concept EntityMODELS 2020 Tutorial on MPS - Supplementary Material 1 - Creating concept Entity
MODELS 2020 Tutorial on MPS - Supplementary Material 1 - Creating concept Entity
 
Towards a mnemonic classification of software languages
Towards a mnemonic classification of software languagesTowards a mnemonic classification of software languages
Towards a mnemonic classification of software languages
 
Worst practices for domain-specific modelling
Worst practices for domain-specific modellingWorst practices for domain-specific modelling
Worst practices for domain-specific modelling
 
An ABC of JetBrains MPS
An ABC of JetBrains MPSAn ABC of JetBrains MPS
An ABC of JetBrains MPS
 
KernelF: a functional core for domain-specific languages in JetBrains MPS
KernelF: a functional core for domain-specific languages in JetBrains MPSKernelF: a functional core for domain-specific languages in JetBrains MPS
KernelF: a functional core for domain-specific languages in JetBrains MPS
 
Reflections on teaching JetBrains MPS within a university course
Reflections on teaching JetBrains MPS within a university courseReflections on teaching JetBrains MPS within a university course
Reflections on teaching JetBrains MPS within a university course
 
Language Workbench Language Wheel
Language Workbench Language WheelLanguage Workbench Language Wheel
Language Workbench Language Wheel
 
Design dimensions of DSLs
Design dimensions of DSLsDesign dimensions of DSLs
Design dimensions of DSLs
 
JetBrains MPS: Typesystem Aspect
JetBrains MPS: Typesystem AspectJetBrains MPS: Typesystem Aspect
JetBrains MPS: Typesystem Aspect
 
JetBrains MPS: Editor Aspect
JetBrains MPS: Editor AspectJetBrains MPS: Editor Aspect
JetBrains MPS: Editor Aspect
 
JetBrains MPS: Structure Aspect
JetBrains MPS: Structure AspectJetBrains MPS: Structure Aspect
JetBrains MPS: Structure Aspect
 
Xtext: type checking and scoping
Xtext: type checking and scopingXtext: type checking and scoping
Xtext: type checking and scoping
 
Xtext: code generation
Xtext: code generationXtext: code generation
Xtext: code generation
 
Xtext: validation, quickfixes, custom formatting
Xtext: validation, quickfixes, custom formattingXtext: validation, quickfixes, custom formatting
Xtext: validation, quickfixes, custom formatting
 
Xtend Programming Language
Xtend Programming LanguageXtend Programming Language
Xtend Programming Language
 
Xtext: Eclipse Modeling Framework
Xtext: Eclipse Modeling FrameworkXtext: Eclipse Modeling Framework
Xtext: Eclipse Modeling Framework
 
Xtext: writing a grammar
Xtext: writing a grammarXtext: writing a grammar
Xtext: writing a grammar
 

Dernier

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Dernier (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 

Design concerns for concrete syntax

  • 1. Design concerns for concrete syntax
  • 2. Concrete syntax Quorum A. Stefik (University of Nevada), S. Siebert (Washington School of Medicine) integer a variable that holds whole values if doing something after verifying that something is true Boolean equals checking whether one thing is the same as another thing array a variable that references one or more values in a row class representing something in the computer that exists in the real world method a list of instructions that represents a tangible behavior general-purpose language public a part of a computer program that can be accessed by another program try attempting to run code that may not run correctly
  • 3. Concrete syntax Quorum notion non-programmerprogrammer score score integer numberinteger number real integer real 8.38 6.20 5.88 6.63 6.46 5.91 float numberdecimal number float decimal rational 6.81 6.79 6.68 6.70 6.43 6.07
  • 4. Concrete syntax Quorum Boolean conditionboolean bool binary logic binary 7.68 7.63 6.25 5.32 5.26 5.11 string charactersstring text charstring text charstring 7.48 7.23 7.21 6.37 6.15 5.89 notion non-programmerprogrammer score score
  • 5. Concrete syntax Quorum assignment x = 1024x = 1024 x is 1024 x =: 1024 x is 1024 x : 1024 7.87 5.77 5.45 6.90 6.32 5.51 type cast use t as Doghandle t as Dog use t as Dog cast(t, Dog) handle t as Dog apply Dog to t 6.15 5.99 5.85 5.90 5.82 5.46 in Java: (Dog)t notion non-programmerprogrammer score score
  • 6. Concrete syntax Quorum increment x = x + 1x = x + 1 x++ x += 1 x + 1 raise x 8.37 7.44 7.14 7.06 5.93 5.49 if statement ifif when whenever when require 8.37 7.49 6.86 6.89 6.59 6.46 notion non-programmerprogrammer score score
  • 7. Concrete syntax Quorum notion non-programmerprogrammer class objectobject structure class structure framework parent sourcesource parent foundation foundation parentsuper this selfself me myself myself me abstract blueprintprototype frame blueprint frame model return providereturn report provide report return constant permanentconstant const permanent constant const try checktest check try test on error static constantfixed constant static permanent fixed
  • 8. Viscosity of notations print ”text1” in bold print ”text2” in bold + italic print ”text3” in bold + red print ”text4” in bold introduce “styles” style MyStyle is bold using MyStyle { print “text1” print “text2” in italic print “text3” in red print “text4” } can be easily changed for all usages modify the style of several items at once no need to change the style of each individual item repetition viscosity repetition viscosity
  • 9. Viscosity of notations knock-on viscosity repetition viscosity scope viscosity violates internal constrains in the programchange in code their resolution violates further constraints change in size of input data requires changes to program structure Turbo Pascal didn’t allow for dynamic arrays single action within model requires many repetitive actions
  • 10. Writability and readability writable syntax users not necessarily readable tool support readable syntax can be written effectively can be read effectively concise have to type less editing support from IDE  writability of syntax code completion quickfixes a more concise syntax tables emphasize readability over writability
  • 11. Writability and readability APL “A Programming Language” central datatype multidimensional array to represent most functions and operatorsspecial graphic symbols very concise code IBM 2741 special keyboard
  • 12. Writability and readability MUMPS Massachusetts General Hospital Utility Multi- Programming System no reserved words abbreviations for concepts no priority of arithmetic operations keywords can be used as identifiers 2+3*10 50
  • 13. Writability and readability Piet esoteric language program that prints “Hello, world!”
  • 14. Learnability and effectiveness learnable syntax conceptsthe more effective syntax useful for novices can be “explored” by exploiting IDE support “press Ctrl+Space and the tool will tell you what you can type next” have direct meaning in the domain the easier to learn the language after learning the language users can express domain problems effectively
  • 15. Multiple notations different syntaxes for the same abstract syntax let users choose more learnable and verbosebeginners more effective syntaxexperienced easy to define several notations projectional editors
  • 16. IDE supportability SQL SELECT field1, field2 FROM table1 WHERE ... FROM table1 SELECT field1, field2 WHERE ... textual languages syntax can be supported by IDE code completion when typing this code, a user can’t get any support from IDE because table has not yet been specified a better syntax with respect to IDE support
  • 17. IDE supportability functional languages advantage in terms of IDE support function call in either case, function comes first f(a,b,c) a.f(b,c) alternative notation first argument before the dot (optional syntax) (f a b c) after the user types “a.” suggest all functions available for the type of acode completion much better explorability of the language