SlideShare a Scribd company logo
Principled Syntactic Code
Completion using Placeholders
SLE’16 - Amsterdam
Sebastian Erdweg, Guido Wachsmuth, EelcoVisser
Eduardo Souza
2
3
*S. Amann, S. Proksch, S. Nadi, and M. Mezini. A study of visual studio usage in practice. In SANER, 2016.
4
Syntactic Completion
Semantic Completion
5
Syntactic Completion
Semantic Completion
6
Problems
7
Problems
Unsound!
8
Soundness: the resulting program should
have no additional syntax errors.
Problems
9
Problems
Unsound!
10
Incomplete!
Completeness: any program should be derivable
through code completion.
Problems
Unsound!
11
Problems
Incomplete!
Unsound!
12
Ad-hoc!
Problems
Incomplete!
Unsound!
13
Language Specification
Syntax
Definition
Name
Binding
Type
Constraints
Code Completion
Syntactic
Completion
Semantic
Completion
Textual/Projectional IDE
Language Workbenches
14
15
Unsound!
16
Sound and Complete Syntactic
Code Completion from Language
Specifications
17
Language Specification
Syntax
Definition
Name
Binding
Type
Constraints
Code Completion
Syntactic
Completion
Semantic
Completion
Textual IDE
Sound!
Complete!
Language Workbenches
18
Language Specification
SDF3
Name
Binding
Type
Constraints
Code Completion
Syntactic
Completion
Semantic
Completion
Textual IDE
Sound!
Complete!
19
Explicit Placeholders
20
Incomplete
programs
21
Make incompleteness valid using placeholders!
Incomplete
programs
22
23
24
25
26
4
2
3
1
27
Deriving Syntactic Completion from the Syntax Definition
context-free syntax
Statement ::= "if" "(" Exp ")" Statement "else" Statement {"If"}
28
context-free syntax // placeholder rule
Statement ::= “$Statement" {“Statement-Plhdr"}
context-free syntax //regular production rule
Statement ::= "if" "(" Exp ")" Statement "else" Statement {"If"}
Make placeholders part of the language
Stm-Plhdr
If
Exp-Plhdr Stm-Plhdr
29
Stm-Plhdr
context-free syntax //regular production rule
Statement ::= "if" "(" Exp ")" Statement "else" Statement {"If"}
signature constructors // AST signatures
If : Exp * Statement * Statement -> Statement
Calculate placeholder expansions
30
rules
rewrite-placeholder:
Statement-Plhdr() -> If(Exp-Plhdr(), Statement-Plhdr(),
Statement-Plhdr())
Format Expansions
context-free syntax
Statement ::= "if" "(" Exp ")" Statement "else" Statement {cons("If")}
context-free syntax // placeholder rule
Statement ::= "$Statement"
Parse Placeholders
Expand
Placeholders
Incomplete
programs
Complete
programs
Expand
placeholder
Expand/overwrite
placeholders
Correct
programs
31
32
Complete
programs
33
How to expand?
Complete
programs
34
Type a placeholder?
35
Type a placeholder?
36
Type a placeholder?
37
Inferring Placeholders
Optional Parent
List of Statements
38
Add Element to List
Add Optional Element
Placeholder Inference
Optional Parent
List of Statements
Add Optional Element
39
No source region
Add first or last element
Placeholder Inference
Add Element to List
ClassDecl
class “A” {NoParent ConsMethod
[…]
}NilField
40
Placeholder Inference - Optional
41
ClassDecl
class “A” {NoParent ConsMethod
[…]
}NilField
Placeholder Inference - Optional
42
ClassDecl
class “A” {NoParent ConsMethod
[…]
}NilField
Placeholder Inference - Optional
43
Placeholder Inference - Optional
44
Placeholder Inference - Lists
[…]
[…]
Method
Cons
VarDecl
AssignInt “x”
VarRef
“x”
Add
Int
21
Cons
Nil
{ return
[…]
int ;
Int
=
21
45
Placeholder Inference - Lists
[…]
[…]
Method
Cons
VarDecl
AssignInt “x”
VarRef
“x”
Add
Int
21
Cons
Nil
{ return
[…]
int ;
Int
=
21
46
Placeholder Inference - Lists
[…]
[…]
Method
Cons
VarDecl
AssignInt “x”
VarRef
“x”
Add
Int
21
Cons
Nil
{ return
[…]
int ;
Int
=
21
47
Placeholder Inference - Lists
[…]
[…]
Method
Cons
VarDecl
AssignInt “x”
VarRef
“x”
Add
Int
21
Cons
Nil
{ return
[…]
int ;
Int
=
21
48
49
Incomplete
programs
Complete
programs
Expand
placeholder
Infer
placeholder
Correct
programs
Infer
placeholder
Expand/overwrite
placeholders
50
Incorrect
programs
51
Error Recovery
52
53
54
context-free syntax //regular syntax rules
Statement.VarDecl = <<Type> <ID>;>
Statement.Assign = <<VarRef> = <Exp>;>
Insertion Rules
// derived insertion rules for placeholders
context-free syntax
Type.Type-Plhdr = {symbol-insertion}
ID.ID-Plhdr = {symbol-insertion}
Statement.Statement-Plhdr = {symbol-insertion}
VarRef.VarRef-Plhdr = {symbol-insertion}
Exp.Exp-Plhdr = {symbol-insertion}
// derived insertion rules for literals
lexical syntax
"=" = {symbol-completion}
";" = {symbol-completion}
55
Proposal nodes
Insertion nodes
[…]
[…]
Stmt*
amb
VarDecl
ClassType
“x”
VarDecl
[…]
Assign
ID-Plhdr ;
Assign
VarRef
“x”
Exp-Plhdr ;
=
Apply insertion rules at the cursor
56
Limit the search space!
Exp-Plhdr Exp-Plhdr
+
Assign
VarRef
“x”
;
=
[…]
Add
Assign
VarRef
“x”
;=
[…]
Exp-Plhdr
57
Greedy recovery!
[…]
[…]
Stmt*
amb
VarDecl
ClassType
“x”
VarDecl
[…]
Assign
ID-Plhdr ;
Assign
VarRef
“x”
Exp-Plhdr ;
=
58
Nested Proposal Nodes
IntValue Exp-Plhdr+
Assign
VarRef
“x”
;=
[…]
Add
1
59
Incorrect
programs
Incomplete
programs
Complete
programs
Correct
programs
60
Incorrect
programs
Incomplete
programs
Complete
programs
Expand
placeholder
Correct
programs
Expand/overwrite
placeholders
61
Incorrect
programs
Incomplete
programs
Complete
programs
Expand
placeholder
Infer
placeholder
Correct
programs
Infer
placeholder
Expand/overwrite
placeholders
62
Incorrect
programs
Incomplete
programs
Complete
programs
Expand
placeholder
Infer
placeholder
Correct
programs
Infer
placeholder
Expand/overwrite
placeholders
Recover
incomplete
program
Recover
complete
program
63
64
Language Specification
SDF3
Name
Binding
Type
Constraints
Code Completion
Syntactic
Completion
Semantic
Completion
Sound!
Complete!
Textual IDE

More Related Content

Viewers also liked

Portfolio Gianfranco Antonaci
Portfolio Gianfranco AntonaciPortfolio Gianfranco Antonaci
Portfolio Gianfranco Antonaci
Gianfranco Antonaci
 
Doobert's Transport Trio
Doobert's Transport TrioDoobert's Transport Trio
Doobert's Transport Trio
Alyssa Grunfelder
 
Course outline
Course outlineCourse outline
Course outline
eaurnsaesur
 
Anato
AnatoAnato
Anato
yaloda
 
Rutas argentinas - Serie, Piedra Libre
Rutas argentinas - Serie, Piedra LibreRutas argentinas - Serie, Piedra Libre
Rutas argentinas - Serie, Piedra Libre
e15de21
 
MINIMIZATION OF METABOLIC COST OF MUSCLES BASED ON HUMAN EXOSKELETON MODELING...
MINIMIZATION OF METABOLIC COST OF MUSCLES BASED ON HUMAN EXOSKELETON MODELING...MINIMIZATION OF METABOLIC COST OF MUSCLES BASED ON HUMAN EXOSKELETON MODELING...
MINIMIZATION OF METABOLIC COST OF MUSCLES BASED ON HUMAN EXOSKELETON MODELING...
ijbesjournal
 
RED BLOOD CELLS EXTRACTION AND COUNTING
RED BLOOD CELLS EXTRACTION AND COUNTINGRED BLOOD CELLS EXTRACTION AND COUNTING
RED BLOOD CELLS EXTRACTION AND COUNTINGRahul Reghunath
 
Dia de la Bandera - César y Benja
Dia de la Bandera - César y Benja Dia de la Bandera - César y Benja
Dia de la Bandera - César y Benja
e15de21
 
Aprendizaje significativo
Aprendizaje significativoAprendizaje significativo
Aprendizaje significativo
liliana0213
 
Sociedad de la informacion del conocimiento en la final
Sociedad de la informacion del conocimiento en la finalSociedad de la informacion del conocimiento en la final
Sociedad de la informacion del conocimiento en la final
Lina Ayala
 

Viewers also liked (10)

Portfolio Gianfranco Antonaci
Portfolio Gianfranco AntonaciPortfolio Gianfranco Antonaci
Portfolio Gianfranco Antonaci
 
Doobert's Transport Trio
Doobert's Transport TrioDoobert's Transport Trio
Doobert's Transport Trio
 
Course outline
Course outlineCourse outline
Course outline
 
Anato
AnatoAnato
Anato
 
Rutas argentinas - Serie, Piedra Libre
Rutas argentinas - Serie, Piedra LibreRutas argentinas - Serie, Piedra Libre
Rutas argentinas - Serie, Piedra Libre
 
MINIMIZATION OF METABOLIC COST OF MUSCLES BASED ON HUMAN EXOSKELETON MODELING...
MINIMIZATION OF METABOLIC COST OF MUSCLES BASED ON HUMAN EXOSKELETON MODELING...MINIMIZATION OF METABOLIC COST OF MUSCLES BASED ON HUMAN EXOSKELETON MODELING...
MINIMIZATION OF METABOLIC COST OF MUSCLES BASED ON HUMAN EXOSKELETON MODELING...
 
RED BLOOD CELLS EXTRACTION AND COUNTING
RED BLOOD CELLS EXTRACTION AND COUNTINGRED BLOOD CELLS EXTRACTION AND COUNTING
RED BLOOD CELLS EXTRACTION AND COUNTING
 
Dia de la Bandera - César y Benja
Dia de la Bandera - César y Benja Dia de la Bandera - César y Benja
Dia de la Bandera - César y Benja
 
Aprendizaje significativo
Aprendizaje significativoAprendizaje significativo
Aprendizaje significativo
 
Sociedad de la informacion del conocimiento en la final
Sociedad de la informacion del conocimiento en la finalSociedad de la informacion del conocimiento en la final
Sociedad de la informacion del conocimiento en la final
 

Similar to Principled Syntactic Code Completion with Placeholders

Declare Your Language: Syntax Definition
Declare Your Language: Syntax DefinitionDeclare Your Language: Syntax Definition
Declare Your Language: Syntax Definition
Eelco Visser
 
Name binding with scope graphs
Name binding with scope graphsName binding with scope graphs
Name binding with scope graphs
Eelco Visser
 
Avi Pfeffer, Principal Scientist, Charles River Analytics at MLconf SEA - 5/2...
Avi Pfeffer, Principal Scientist, Charles River Analytics at MLconf SEA - 5/2...Avi Pfeffer, Principal Scientist, Charles River Analytics at MLconf SEA - 5/2...
Avi Pfeffer, Principal Scientist, Charles River Analytics at MLconf SEA - 5/2...
MLconf
 
ppt7
ppt7ppt7
ppt7
callroom
 
ppt2
ppt2ppt2
ppt2
callroom
 
name name2 n
name name2 nname name2 n
name name2 n
callroom
 
ppt9
ppt9ppt9
ppt9
callroom
 
Ruby for Perl Programmers
Ruby for Perl ProgrammersRuby for Perl Programmers
Ruby for Perl Programmers
amiable_indian
 
name name2 n2
name name2 n2name name2 n2
name name2 n2
callroom
 
test ppt
test ppttest ppt
test ppt
callroom
 
name name2 n
name name2 nname name2 n
name name2 n
callroom
 
ppt21
ppt21ppt21
ppt21
callroom
 
name name2 n
name name2 nname name2 n
name name2 n
callroom
 
ppt17
ppt17ppt17
ppt17
callroom
 
ppt30
ppt30ppt30
ppt30
callroom
 
name name2 n2.ppt
name name2 n2.pptname name2 n2.ppt
name name2 n2.ppt
callroom
 
ppt18
ppt18ppt18
ppt18
callroom
 
LECTURE 6 DESIGN, DEBasd, INTERFACES.pdf
LECTURE 6 DESIGN, DEBasd, INTERFACES.pdfLECTURE 6 DESIGN, DEBasd, INTERFACES.pdf
LECTURE 6 DESIGN, DEBasd, INTERFACES.pdf
ShashikantSathe3
 
Using ICT to Analyse Language
Using ICT to Analyse LanguageUsing ICT to Analyse Language
Using ICT to Analyse Language
Eka Nathiqo
 

Similar to Principled Syntactic Code Completion with Placeholders (20)

Declare Your Language: Syntax Definition
Declare Your Language: Syntax DefinitionDeclare Your Language: Syntax Definition
Declare Your Language: Syntax Definition
 
Name binding with scope graphs
Name binding with scope graphsName binding with scope graphs
Name binding with scope graphs
 
Avi Pfeffer, Principal Scientist, Charles River Analytics at MLconf SEA - 5/2...
Avi Pfeffer, Principal Scientist, Charles River Analytics at MLconf SEA - 5/2...Avi Pfeffer, Principal Scientist, Charles River Analytics at MLconf SEA - 5/2...
Avi Pfeffer, Principal Scientist, Charles River Analytics at MLconf SEA - 5/2...
 
ppt7
ppt7ppt7
ppt7
 
ppt2
ppt2ppt2
ppt2
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt9
ppt9ppt9
ppt9
 
Ruby for Perl Programmers
Ruby for Perl ProgrammersRuby for Perl Programmers
Ruby for Perl Programmers
 
name name2 n2
name name2 n2name name2 n2
name name2 n2
 
test ppt
test ppttest ppt
test ppt
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt21
ppt21ppt21
ppt21
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt17
ppt17ppt17
ppt17
 
ppt30
ppt30ppt30
ppt30
 
name name2 n2.ppt
name name2 n2.pptname name2 n2.ppt
name name2 n2.ppt
 
ppt18
ppt18ppt18
ppt18
 
LECTURE 6 DESIGN, DEBasd, INTERFACES.pdf
LECTURE 6 DESIGN, DEBasd, INTERFACES.pdfLECTURE 6 DESIGN, DEBasd, INTERFACES.pdf
LECTURE 6 DESIGN, DEBasd, INTERFACES.pdf
 
Java
JavaJava
Java
 
Using ICT to Analyse Language
Using ICT to Analyse LanguageUsing ICT to Analyse Language
Using ICT to Analyse Language
 

Recently uploaded

Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
Mohammed Sikander
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
deeptiverma2406
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
Group Presentation 2 Economics.Ariana Buscigliopptx
Group Presentation 2 Economics.Ariana BuscigliopptxGroup Presentation 2 Economics.Ariana Buscigliopptx
Group Presentation 2 Economics.Ariana Buscigliopptx
ArianaBusciglio
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
kimdan468
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 

Recently uploaded (20)

Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
Group Presentation 2 Economics.Ariana Buscigliopptx
Group Presentation 2 Economics.Ariana BuscigliopptxGroup Presentation 2 Economics.Ariana Buscigliopptx
Group Presentation 2 Economics.Ariana Buscigliopptx
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 

Principled Syntactic Code Completion with Placeholders