SlideShare a Scribd company logo
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 1
Xtext: Eclipse-based framework for defining
Domain-Specific Languages (DSLs)
Thomas Baar
thomas.baar@ccfit.nsu.ru (temporary *)
NSU Tech Talk; Akademgorodok, 2015-11-24
Guest Lecturer at:
Home University:
* My stay at Novosibirsk State University is supported by DAAD (German Academic Exchange Service).
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 2
Domain-Specific Language (DSL)
A DSL is a notation for expressing observations, facts, algorithms
in an elegant way. The notation can be
- textual
- graphical
- table-oriented
or a mixture of the above.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 3
Domain-Specific Language (DSL)
Compared to general-purpose modeling languages (e.g. UML) or
programming languages (e.g. Java), DSLs have usually a (much)
less complex syntax while being expressive enough for the
domains they target!
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 4
Domain-Specific Language (DSL)
Compared to general-purpose modeling languages (e.g. UML) or
programming languages (e.g. Java), DSLs have usually a (much)
less complex syntax while being expressive enough for the
domains they target!
Domain-specific models/programs are typically less complex
than models/programs written in a general purpose language.
Thus, they are easier to understand and to maintain.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 5
DSL Examples
Domain
Typesetting
Language
Latex
Source: Britannica kids. kid.eb.com
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 6
DSL Examples
Domain
Automatic Software Build
Language
make
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 7
DSL Examples
Domain
Chemistry
Language
Mendeleev's periodic
system of chemical
elements
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 8
DSL Examples
Domain
Process Description
Language
Harel's statecharts
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 9
- Что такое?
• Eclipse-framework for defining textual DSLs
- actually, Xtext is the heart of Eclipse bundle "Eclipse for Java
and DSL developers"
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 10
- Что такое?
• Eclipse-framework for defining textual DSLs
- actually, Xtext is the heart of Eclipse bundle "Eclipse for Java
and DSL developers"
• Open source, but professionally developed and maintained by
start-up company Itemis (Kiel, Germany)
- matured code, release 2.9 expected early Dec 2015
- nice documentation/tutorials
- active forum, fast bug-fixes
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 11
- Что такое?
• Eclipse-framework for defining textual DSLs
- actually, Xtext is the heart of Eclipse bundle "Eclipse for Java
and DSL developers"
• Open source, but professionally developed and maintained by
start-up company Itemis (Kiel, Germany)
- matured code, release 2.9 expected early Dec 2015
- nice documentation/tutorials
- active forum, fast bug-fixes
• Very informative website www.eclipse.org/xtext
- short video tutorials explaining each editor feature
- links to what community has implemented using Xtext
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 12
Xtext: Mission & Workflow
Mission: Make the Definition and Usage of textual DSLs as easy as possible.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 13
Overview on DSL Definition
DSL-Part Defined in Purpose
Grammar EBNF-inspired Grammar
language
specify lexer, parser
Validator Xtend * filter out non-intended input
models; trigger error-
markers in editor
Scope definitions Xtend resolve cross-references
Editor configurations
(Overview pane, content
assist/auto-completion,
font-selection, tooltips, etc.)
Xtend adjust editor features
Code generator Xtend specify code generator
Tests Xtend execute test cases for lexer,
parser, validator, scope
provider, editor, eclipse
integration, etc.
* Xtend - An extension of Java invented from Xtext-team in order to make typical
programming tasks (e.g. AST traversion, code templates) much easier.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 14
More detailed DSL-Definition Workflow
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 15
Example Project
Beans
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 16
A Simple Example: Beans
-- Create an Xtext Project --
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 17
A Simple Example: Beans
-- Define the Grammar --
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 18
A Simple Example: Beans
-- Define the Grammar --
Header
Start Rule
Feature in generated
EMF class
Cross-reference
Keyword
Optional Occurence
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 19
Xtext is build on top of the parser generator ANTLR. For the above grammar,
much longer input files for ANTLR have been generated (299 LOC, 24 LOC).
A Simple Example: Beans
-- Define the Grammar --
Header
Start Rule
Feature in generated
EMF class
Cross-reference
Keyword
Optional Occurence
The formalism for defining a grammar is a DSL!
This DSL has been implemented by Xtext itself ;-)
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 20
A Simple Example: Beans
-- Testing the Parser using JUnit --
Pre-defined
helper classes
String templates
(enclosed by ''' )
Extension method
(actually defined
in ParserHelper and
not in String)
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 21
A Simple Example: Beans
-- Adding a Validator: Making the syntax more precise --
class BeansDslValidator extends AbstractBeansDslValidator {
public static val INVALID_NAME = 'invalidName'
@Check
def checkBeannameStartsWithCapital(Bean bean) {
if (!Character.isUpperCase(bean.name.charAt(0))) {
error('Name must start with a capital',
BeansDslPackage.Literals.BEAN__NAME, INVALID_NAME
)
}
}
}
Mark input text as erroneous
under certain circumstances
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 22
A Simple Example: Beans
-- Testing the Validator using JUnit --
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 23
A Simple Example: Beans
-- Enjoy the Editor :-) --
Content assist
(aka auto-completion)
Grammar error
(missing ';')
Validation error
(no capital letter)
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 24
A Simple Example: Beans
-- Specify a Code Generator using Xtend --
class BeansDslGenerator implements IGenerator {
override void doGenerate(Resource resource, IFileSystemAccess fsa) {
resource.allContents.toIterable.filter(typeof(Bean)).forEach[
fsa.generateFile('''beans/«name».java''', compile)
]
}
def compile(Bean bean) {
'''
public class «bean.name» «IF bean.superType != null»extends «bean.superType.name» «EN
«FOR att : bean.attributes»
private «att.type.typeToString» «att.name»;
«ENDFOR»
«FOR att : bean.attributes»
public «att.type.typeToString» get«att.name.toFirstUpper»() {
return «att.name»;
}
public void set«att.name.toFirstUpper»(«att.type.typeToString» _arg) {
this.«att.name» = _arg;
}
«ENDFOR»
}
'''}
def typeToString(BasicType type) {
if (type.literal.equals("string")) "String" else type}
}
Output written in .java file
Each bean becomes a Java class
Each bean attribute is mapped to
Java attribute, getter- and setter-
method
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 25
A Simple Example: Beans
-- Enjoy the Code Generator :-) --
One input file
(written in our
DSL)
Location of generated
artifacts
Three output files
(written in target
language)
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 26
A Simple Example: Beans
-- Testing Code Generator using JUnit --
class BeansGeneratorTests {
@Rule
@Inject public TemporaryFolder temporaryFolder
@Inject extension CompilationTestHelper
@Inject extension ReflectExtensions
@Test
def void testTwoCompiledClasses() {
'''
bean Person{string name;}
bean Student extends Person{
boolean isMaster;
studentID; // implicitely typed as int
}
}
'''.compile [
getCompiledClass("Person").assertNotNull
getCompiledClass("Student").assertNotNull
]
}
}
both classes
has been compiled
successfully
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 27
A Simple Example: Beans
-- Testing Code Generator using JUnit --
@Test
def void playWithGeneratedJavaCode() {
'''
bean Person{string name;}
bean Student extends Person{
boolean isMaster;
studentID; // implicitely typed as int
}
}
'''.compile [
getCompiledClass("Student").newInstance => [
assertNull(it.invoke("getName"))
val aName = "Johnson"
it.invoke("setName", aName) // invoking inherit method
assertEquals(aName, it.invoke("getName"))
val anInt = 1234
it.invoke("setStudentID", anInt)
assertEquals(anInt, it.invoke("getStudentID"))
]
]
}
create instance
of Student and
invoke setter/getter
by reflection
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 28
Summary
• Differences of domain-specific and general-purpose
languages
• Short overview on purpose and architecture of
Xtext
• Gone through small example (hopefully) showing the
efficiency gain
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 29
Summary
• Differences of domain-specific and general-purpose
languages
• Short overview on purpose and architecture of
Xtext
• Gone through small example (hopefully) showing the
efficiency gain
Try it out by yourself! Xtext is very versatile and stable.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 30
Thank you!
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 1
How to write a PhD thesis in Germany
Thomas Baar
thomas.baar@ccfit.nsu.ru (temporary *)
NSU Tech Talk; Akademgorodok, 2015-11-24
Guest Lecturer at:
Home University:
* My stay at Novosibirsk State University is supported by DAAD (German Academic Exchange Service).
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 2
What do you like Germany for?
Source of map: "Deutschland topo" by Botaurus-stellaris - Own work. Licensed under CC BY-SA 3.0 via Commons -
https://commons.wikimedia.org/wiki/File:Deutschland_topo.jpg#/media/File:Deutschland_topo.jpg
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 3
What do you like Germany for?
Source of map: "Deutschland topo" by Botaurus-stellaris - Own work. Licensed under CC BY-SA 3.0 via Commons -
https://commons.wikimedia.org/wiki/File:Deutschland_topo.jpg#/media/File:Deutschland_topo.jpg
Cultural heritage
(literature, music,
architecture)
Social welfare
Innovative companies
High-quality products
(„Made in (West-)Germany“)
Efficiency
German beer :-)
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 4
Up-/Downsides of Efficiency
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 5
Up-/Downsides of Efficiency
Ups
- high wages
- cheap products/food
- as a country: strong
economic position
(much more export
than import)
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 6
Up-/Downsides of Efficiency
Ups
- high wages
- cheap products/food
- as a country: strong
economic position
(much more export
than import)
Downs
- high unemployment
rate
- expensive workplaces
 do not call a
craftsman ...
- high pressure on
employees
 Diesel Gate at VW
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 7
Efficiency also in Academia
• Comparing Student/Employee ratio of
- Hochschule für Technik und Wirtschaft (HTW) Berlin
 University of Applied Sciences
- Humboldt-University (HU) Berlin
- Novosibirsk State University (NSU)
0
5000
10000
15000
20000
25000
30000
35000
HTW Berlin HU Berlin NSU
Size of Universities
Employees Students
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 8
Efficiency also in Academia
• Comparing Student/Employee ratio of
- Hochschule für Technik und Wirtschaft (HTW) Berlin
 University of Applied Sciences
- Humboldt-University (HU) Berlin
- Novosibirsk State University (NSU)
0
5
10
15
20
25
30
HTW Berlin HU Berlin NSU
Students per Employee
0
5000
10000
15000
20000
25000
30000
35000
HTW Berlin HU Berlin NSU
Size of Universities
Employees Students
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 9
Efficiency also in Academia
• Comparing Student/Employee ratio of
- Hochschule für Technik und Wirtschaft (HTW) Berlin
 University of Applied Sciences
- Humboldt-University (HU) Berlin
- Novosibirsk State University (NSU)
0
5
10
15
20
25
30
HTW Berlin HU Berlin NSU
Students per Employee
0
5000
10000
15000
20000
25000
30000
35000
HTW Berlin HU Berlin NSU
Size of Universities
Employees Students
This is the paradise !!!
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 10
My Career
1990-97 Study of Computer Science at HU Berlin
1997-99 Research Assistent at HU Berlin
1999 How to continue? Hard decision!
1999-03 Doctoral Student at University of Karlsruhe
(today: KIT)
2003-07 Post-Doc, École Polytechnique Fédérale de Lausanne
(EPFL), Lausanne, Switzerland
2007-11 Senior Engineer in small software company, Berlin
2011 -- Professor at HTW Berlin
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 11
My Period of Writing PhD Thesis
• 2 years preliminary research work at HU Berlin
• my group in Karlsruhe
- 2 professors
- 2 post-docs
- 4 phd students
 funding from DFG (Deutsche Forschungsgemeinschaft): salary,
equipement, travelling
 basically no teaching obligations
- appr. 5-10 student assistents
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 12
My Period of Writing PhD Thesis
• 2 years preliminary research work at HU Berlin
• my group in Karlsruhe
- 2 professors
- 2 post-docs
- 4 phd students
 funding from DFG (Deutsche Forschungsgemeinschaft): salary,
equipement, travelling
 basically no teaching obligations
- appr. 5-10 student assistents
We have the worst PhD supervisor ever, because he does not supervise us!
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 13
My Period of Writing PhD Thesis
• 2 years preliminary research work at HU Berlin
• my group in Karlsruhe
- 2 professors
- 2 post-docs
- 4 phd students
 funding from DFG (Deutsche Forschungsgemeinschaft): salary,
equipement, travelling
 basically no teaching obligations
- appr. 5-10 student assistents
We have the worst PhD supervisor ever, because he does not supervise us!
We have the best PhD supervisor ever, because he does not supervise us!
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 14
How to find open Research Position?
• Ask your professor/supervisor here in Nsk
- people meet at conferences/workshops and
disseminate open positions
• Go to www.academics.de
- offers alert service
- informative links
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 15
Types of PhD Positions
• assistent position at university (Landesstelle)
+ contract extension no problem
- sometimes time-consuming teaching obligations
• research position at university (e.g. DFG financed)
+ focus on research; no teaching
- sometimes hard to get project extension
• position at research institute (Fraunhofer, Leibniz)
+ working on industry problems
- overloaded with work to reach next milestone
• research position in industry (Daimler Benz, Siemens)
+ working on industry problems
- no strong supervision; danger to become 'ordinary' project member
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 16
Initiative for Academic Excellence
• Initiated by chancellor Gerhard Schröder
Idea: Universities and clusters can apply for
special status "Place of Excellence"
- selected universities get huge research money from
Federal budget
- highly competitive (only 5-10 universities got status)
- only already renowned universities have chance to
become successful
Rational: Germany wants to "become better" in world-
wide rankings
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 17
Consequences of Excellence Initiative
• currently a lot of money "in the system"
• many interesting projects
• a lot of open positions :-)
- also due to the current very good job market
 many talented graduates go to industry
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 18
Consequences of Excellence Initiative
• currently a lot of money "in the system"
• many interesting projects
• a lot of open positions :-)
- also due to the current very good job market
 many talented graduates go to industry
!!! However !!!
- still only non-permanent positions
- becoming a professor after PhD project became
even more difficult (due to many qualified colleages
that completed PhD as well)
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 19
Will I have enough money to survive?
• as a PhD student: no fees to be paid
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 20
Will I have enough money to survive?
• as a PhD student: no fees to be paid
• Salary usually according to Tv-L 13: currently 3500 € per month
- from this appr. 50% reduction for taxes, health insurance,
pension plan
- !Attention! some research projects offer only 50% jobs
 "officially" 50% workload, but for sure only 50% payment
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 21
Will I have enough money to survive?
• as a PhD student: no fees to be paid
• Salary usually according to Tv-L 13: currently 3500 € per month
- from this appr. 50% reduction for taxes, health insurance,
pension plan
- !Attention! some research projects offer only 50% jobs
 "officially" 50% workload, but for sure only 50% payment
• Some prices:
- lunch in cafeteria: appr. 4 €
- food from supermarket: appr. 150 € per month
- 1-room flat in Berlin: from 400 € per month
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 22
Final Recommendations
• Do not worry about German language skills
- helpful in private life, but not mandatory at university
• my favourite position: research at university with professor
having 3-4 PhD students
• getting an 1-year-contract initially is rather normal
• publications
- do not wait too long with your first one
- write only if you found out something worth to be told
- also read books/articles on "How to write a good paper?/How
to give a good talk?"
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 23
Final Recommendations
Prof. Tom Henzinger: „Strive always to be as good as you can!“
(when writing applications,writing papers, giving talks)
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 24
Thank you!

More Related Content

PDF
DSLs in JavaScript
PDF
The State of Managed Runtimes 2013, by Attila Szegedi
PPT
Linq To The Enterprise
PPTX
PowerShell - Be A Cool Blue Kid
PDF
groovy DSLs from beginner to expert
PDF
Domain specific languages and Scala
PDF
Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...
PDF
Lambdas & Streams
DSLs in JavaScript
The State of Managed Runtimes 2013, by Attila Szegedi
Linq To The Enterprise
PowerShell - Be A Cool Blue Kid
groovy DSLs from beginner to expert
Domain specific languages and Scala
Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...
Lambdas & Streams

What's hot (8)

PDF
Deep dive into Xtext scoping local and global scopes explained
PDF
PyParis 2017 / Pandas - What's new and whats coming - Joris van den Bossche
PPTX
Ahieving Performance C#
PDF
How to write a TableGen backend
PDF
Supercharging WordPress Development in 2018
KEY
Joomla Day DK 2012
PDF
Patterns for JVM languages JokerConf
PDF
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Deep dive into Xtext scoping local and global scopes explained
PyParis 2017 / Pandas - What's new and whats coming - Joris van den Bossche
Ahieving Performance C#
How to write a TableGen backend
Supercharging WordPress Development in 2018
Joomla Day DK 2012
Patterns for JVM languages JokerConf
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Ad

Viewers also liked (18)

PDF
Delphi7 oyutnii garin awlaga 2006 muis
PPT
9.6 El modelado Glaciar
PDF
HOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONE
PPTX
Accelerate Sales and Increase Revenue
PDF
2014 Best Sports Cars
PDF
The design of things you don't want to think about — WIAD 2016 Jönköping
PPT
Lipinski Jmrc Lecture1 Nov2008
PDF
Tea vs-coffee
PDF
Artificial Intelligence 02 uninformed search
PDF
رهبری تیمهای نوآور
PPTX
Music video audience profile
PPT
How to Look at Art
PDF
9 einfache Ideen für individuelle Bildmotive
PDF
Pn learning takmin
PDF
Artificial Intelligence 06.01 introduction bayesian_networks
PDF
ATA CP-MAT program highlights
PPT
PPTX
8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente
Delphi7 oyutnii garin awlaga 2006 muis
9.6 El modelado Glaciar
HOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONE
Accelerate Sales and Increase Revenue
2014 Best Sports Cars
The design of things you don't want to think about — WIAD 2016 Jönköping
Lipinski Jmrc Lecture1 Nov2008
Tea vs-coffee
Artificial Intelligence 02 uninformed search
رهبری تیمهای نوآور
Music video audience profile
How to Look at Art
9 einfache Ideen für individuelle Bildmotive
Pn learning takmin
Artificial Intelligence 06.01 introduction bayesian_networks
ATA CP-MAT program highlights
8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente
Ad

Similar to Xtext project and PhDs in Gemany (20)

PPTX
Domain specific languages in eclipse with Xtext (Zeus, UGent)
PPTX
Xbase implementing specific domain language for java
PPTX
Building Your Own DSL with Xtext
PDF
Domain Specific Languages and C++ Code Generation
PDF
Xtext: writing a grammar
PPTX
Creating a textual domain specific language
PDF
The best of AltJava is Xtend
PPTX
Specification Scala DSL for Mobile Application
PPT
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
PDF
Recipes to build Code Generators for Non-Xtext Models with Xtend
PPT
ITU - MDD - XText
PDF
Compiler Construction | Lecture 17 | Beyond Compiler Construction
PPTX
Scam 08
PDF
Markus Voelter Textual DSLs
PDF
(Greach 2015) Dsl'ing your Groovy
PPT
Antlr Conexaojava
PDF
DSLs in Boo Domain Specific Languages in NET 1st Edition Ayende Rahien
PPT
Generative Programming from a DSL Viewpoint
PDF
BOF2644 Developing Java EE 7 Scala apps
PDF
Using Xcore with Xtext
Domain specific languages in eclipse with Xtext (Zeus, UGent)
Xbase implementing specific domain language for java
Building Your Own DSL with Xtext
Domain Specific Languages and C++ Code Generation
Xtext: writing a grammar
Creating a textual domain specific language
The best of AltJava is Xtend
Specification Scala DSL for Mobile Application
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
Recipes to build Code Generators for Non-Xtext Models with Xtend
ITU - MDD - XText
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Scam 08
Markus Voelter Textual DSLs
(Greach 2015) Dsl'ing your Groovy
Antlr Conexaojava
DSLs in Boo Domain Specific Languages in NET 1st Edition Ayende Rahien
Generative Programming from a DSL Viewpoint
BOF2644 Developing Java EE 7 Scala apps
Using Xcore with Xtext

More from Tech Talks @NSU (20)

PDF
Tech Talks @NSU: Путь студента в IT-бизнес
PDF
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
PDF
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
PDF
Back to the Future: Функциональное программирование вчера и сегодня
PDF
Что такое Highload? Секреты высокой нагрузки
PDF
Автоматическое доказательство теорем
PDF
AOT-компиляция Java
PDF
Защита от атак по сторонним каналам
PDF
Как приручить дракона: введение в LLVM
PDF
Тестировщик: ожидание vs. реальность
PDF
Гибкие методологии разработки ПО в реальном мире
PDF
Tech Talks @NSU: Что есть QA и как в него попасть
PDF
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
PDF
Tech Talks @NSU: DLang: возможности языка и его применение
PDF
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
PDF
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
PDF
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
PDF
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
PDF
Tech Talks @NSU: Мир open source — мир возможностей
PDF
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Back to the Future: Функциональное программирование вчера и сегодня
Что такое Highload? Секреты высокой нагрузки
Автоматическое доказательство теорем
AOT-компиляция Java
Защита от атак по сторонним каналам
Как приручить дракона: введение в LLVM
Тестировщик: ожидание vs. реальность
Гибкие методологии разработки ПО в реальном мире
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...

Recently uploaded (20)

PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
PDF
Complete Guide to Website Development in Malaysia for SMEs
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PPTX
Patient Appointment Booking in Odoo with online payment
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Monitoring Stack: Grafana, Loki & Promtail
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
iTop VPN Crack Latest Version Full Key 2025
17 Powerful Integrations Your Next-Gen MLM Software Needs
CHAPTER 2 - PM Management and IT Context
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Computer Software and OS of computer science of grade 11.pptx
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
Design an Analysis of Algorithms I-SECS-1021-03
Designing Intelligence for the Shop Floor.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
Complete Guide to Website Development in Malaysia for SMEs
Odoo Companies in India – Driving Business Transformation.pdf
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
Patient Appointment Booking in Odoo with online payment

Xtext project and PhDs in Gemany

  • 1. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 1 Xtext: Eclipse-based framework for defining Domain-Specific Languages (DSLs) Thomas Baar thomas.baar@ccfit.nsu.ru (temporary *) NSU Tech Talk; Akademgorodok, 2015-11-24 Guest Lecturer at: Home University: * My stay at Novosibirsk State University is supported by DAAD (German Academic Exchange Service).
  • 2. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 2 Domain-Specific Language (DSL) A DSL is a notation for expressing observations, facts, algorithms in an elegant way. The notation can be - textual - graphical - table-oriented or a mixture of the above.
  • 3. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 3 Domain-Specific Language (DSL) Compared to general-purpose modeling languages (e.g. UML) or programming languages (e.g. Java), DSLs have usually a (much) less complex syntax while being expressive enough for the domains they target!
  • 4. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 4 Domain-Specific Language (DSL) Compared to general-purpose modeling languages (e.g. UML) or programming languages (e.g. Java), DSLs have usually a (much) less complex syntax while being expressive enough for the domains they target! Domain-specific models/programs are typically less complex than models/programs written in a general purpose language. Thus, they are easier to understand and to maintain.
  • 5. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 5 DSL Examples Domain Typesetting Language Latex Source: Britannica kids. kid.eb.com
  • 6. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 6 DSL Examples Domain Automatic Software Build Language make
  • 7. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 7 DSL Examples Domain Chemistry Language Mendeleev's periodic system of chemical elements
  • 8. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 8 DSL Examples Domain Process Description Language Harel's statecharts
  • 9. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 9 - Что такое? • Eclipse-framework for defining textual DSLs - actually, Xtext is the heart of Eclipse bundle "Eclipse for Java and DSL developers"
  • 10. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 10 - Что такое? • Eclipse-framework for defining textual DSLs - actually, Xtext is the heart of Eclipse bundle "Eclipse for Java and DSL developers" • Open source, but professionally developed and maintained by start-up company Itemis (Kiel, Germany) - matured code, release 2.9 expected early Dec 2015 - nice documentation/tutorials - active forum, fast bug-fixes
  • 11. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 11 - Что такое? • Eclipse-framework for defining textual DSLs - actually, Xtext is the heart of Eclipse bundle "Eclipse for Java and DSL developers" • Open source, but professionally developed and maintained by start-up company Itemis (Kiel, Germany) - matured code, release 2.9 expected early Dec 2015 - nice documentation/tutorials - active forum, fast bug-fixes • Very informative website www.eclipse.org/xtext - short video tutorials explaining each editor feature - links to what community has implemented using Xtext
  • 12. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 12 Xtext: Mission & Workflow Mission: Make the Definition and Usage of textual DSLs as easy as possible.
  • 13. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 13 Overview on DSL Definition DSL-Part Defined in Purpose Grammar EBNF-inspired Grammar language specify lexer, parser Validator Xtend * filter out non-intended input models; trigger error- markers in editor Scope definitions Xtend resolve cross-references Editor configurations (Overview pane, content assist/auto-completion, font-selection, tooltips, etc.) Xtend adjust editor features Code generator Xtend specify code generator Tests Xtend execute test cases for lexer, parser, validator, scope provider, editor, eclipse integration, etc. * Xtend - An extension of Java invented from Xtext-team in order to make typical programming tasks (e.g. AST traversion, code templates) much easier.
  • 14. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 14 More detailed DSL-Definition Workflow
  • 15. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 15 Example Project Beans
  • 16. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 16 A Simple Example: Beans -- Create an Xtext Project --
  • 17. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 17 A Simple Example: Beans -- Define the Grammar --
  • 18. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 18 A Simple Example: Beans -- Define the Grammar -- Header Start Rule Feature in generated EMF class Cross-reference Keyword Optional Occurence
  • 19. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 19 Xtext is build on top of the parser generator ANTLR. For the above grammar, much longer input files for ANTLR have been generated (299 LOC, 24 LOC). A Simple Example: Beans -- Define the Grammar -- Header Start Rule Feature in generated EMF class Cross-reference Keyword Optional Occurence The formalism for defining a grammar is a DSL! This DSL has been implemented by Xtext itself ;-)
  • 20. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 20 A Simple Example: Beans -- Testing the Parser using JUnit -- Pre-defined helper classes String templates (enclosed by ''' ) Extension method (actually defined in ParserHelper and not in String)
  • 21. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 21 A Simple Example: Beans -- Adding a Validator: Making the syntax more precise -- class BeansDslValidator extends AbstractBeansDslValidator { public static val INVALID_NAME = 'invalidName' @Check def checkBeannameStartsWithCapital(Bean bean) { if (!Character.isUpperCase(bean.name.charAt(0))) { error('Name must start with a capital', BeansDslPackage.Literals.BEAN__NAME, INVALID_NAME ) } } } Mark input text as erroneous under certain circumstances
  • 22. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 22 A Simple Example: Beans -- Testing the Validator using JUnit --
  • 23. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 23 A Simple Example: Beans -- Enjoy the Editor :-) -- Content assist (aka auto-completion) Grammar error (missing ';') Validation error (no capital letter)
  • 24. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 24 A Simple Example: Beans -- Specify a Code Generator using Xtend -- class BeansDslGenerator implements IGenerator { override void doGenerate(Resource resource, IFileSystemAccess fsa) { resource.allContents.toIterable.filter(typeof(Bean)).forEach[ fsa.generateFile('''beans/«name».java''', compile) ] } def compile(Bean bean) { ''' public class «bean.name» «IF bean.superType != null»extends «bean.superType.name» «EN «FOR att : bean.attributes» private «att.type.typeToString» «att.name»; «ENDFOR» «FOR att : bean.attributes» public «att.type.typeToString» get«att.name.toFirstUpper»() { return «att.name»; } public void set«att.name.toFirstUpper»(«att.type.typeToString» _arg) { this.«att.name» = _arg; } «ENDFOR» } '''} def typeToString(BasicType type) { if (type.literal.equals("string")) "String" else type} } Output written in .java file Each bean becomes a Java class Each bean attribute is mapped to Java attribute, getter- and setter- method
  • 25. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 25 A Simple Example: Beans -- Enjoy the Code Generator :-) -- One input file (written in our DSL) Location of generated artifacts Three output files (written in target language)
  • 26. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 26 A Simple Example: Beans -- Testing Code Generator using JUnit -- class BeansGeneratorTests { @Rule @Inject public TemporaryFolder temporaryFolder @Inject extension CompilationTestHelper @Inject extension ReflectExtensions @Test def void testTwoCompiledClasses() { ''' bean Person{string name;} bean Student extends Person{ boolean isMaster; studentID; // implicitely typed as int } } '''.compile [ getCompiledClass("Person").assertNotNull getCompiledClass("Student").assertNotNull ] } } both classes has been compiled successfully
  • 27. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 27 A Simple Example: Beans -- Testing Code Generator using JUnit -- @Test def void playWithGeneratedJavaCode() { ''' bean Person{string name;} bean Student extends Person{ boolean isMaster; studentID; // implicitely typed as int } } '''.compile [ getCompiledClass("Student").newInstance => [ assertNull(it.invoke("getName")) val aName = "Johnson" it.invoke("setName", aName) // invoking inherit method assertEquals(aName, it.invoke("getName")) val anInt = 1234 it.invoke("setStudentID", anInt) assertEquals(anInt, it.invoke("getStudentID")) ] ] } create instance of Student and invoke setter/getter by reflection
  • 28. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 28 Summary • Differences of domain-specific and general-purpose languages • Short overview on purpose and architecture of Xtext • Gone through small example (hopefully) showing the efficiency gain
  • 29. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 29 Summary • Differences of domain-specific and general-purpose languages • Short overview on purpose and architecture of Xtext • Gone through small example (hopefully) showing the efficiency gain Try it out by yourself! Xtext is very versatile and stable.
  • 30. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 30 Thank you!
  • 31. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 1 How to write a PhD thesis in Germany Thomas Baar thomas.baar@ccfit.nsu.ru (temporary *) NSU Tech Talk; Akademgorodok, 2015-11-24 Guest Lecturer at: Home University: * My stay at Novosibirsk State University is supported by DAAD (German Academic Exchange Service).
  • 32. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 2 What do you like Germany for? Source of map: "Deutschland topo" by Botaurus-stellaris - Own work. Licensed under CC BY-SA 3.0 via Commons - https://commons.wikimedia.org/wiki/File:Deutschland_topo.jpg#/media/File:Deutschland_topo.jpg
  • 33. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 3 What do you like Germany for? Source of map: "Deutschland topo" by Botaurus-stellaris - Own work. Licensed under CC BY-SA 3.0 via Commons - https://commons.wikimedia.org/wiki/File:Deutschland_topo.jpg#/media/File:Deutschland_topo.jpg Cultural heritage (literature, music, architecture) Social welfare Innovative companies High-quality products („Made in (West-)Germany“) Efficiency German beer :-)
  • 34. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 4 Up-/Downsides of Efficiency
  • 35. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 5 Up-/Downsides of Efficiency Ups - high wages - cheap products/food - as a country: strong economic position (much more export than import)
  • 36. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 6 Up-/Downsides of Efficiency Ups - high wages - cheap products/food - as a country: strong economic position (much more export than import) Downs - high unemployment rate - expensive workplaces  do not call a craftsman ... - high pressure on employees  Diesel Gate at VW
  • 37. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 7 Efficiency also in Academia • Comparing Student/Employee ratio of - Hochschule für Technik und Wirtschaft (HTW) Berlin  University of Applied Sciences - Humboldt-University (HU) Berlin - Novosibirsk State University (NSU) 0 5000 10000 15000 20000 25000 30000 35000 HTW Berlin HU Berlin NSU Size of Universities Employees Students
  • 38. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 8 Efficiency also in Academia • Comparing Student/Employee ratio of - Hochschule für Technik und Wirtschaft (HTW) Berlin  University of Applied Sciences - Humboldt-University (HU) Berlin - Novosibirsk State University (NSU) 0 5 10 15 20 25 30 HTW Berlin HU Berlin NSU Students per Employee 0 5000 10000 15000 20000 25000 30000 35000 HTW Berlin HU Berlin NSU Size of Universities Employees Students
  • 39. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 9 Efficiency also in Academia • Comparing Student/Employee ratio of - Hochschule für Technik und Wirtschaft (HTW) Berlin  University of Applied Sciences - Humboldt-University (HU) Berlin - Novosibirsk State University (NSU) 0 5 10 15 20 25 30 HTW Berlin HU Berlin NSU Students per Employee 0 5000 10000 15000 20000 25000 30000 35000 HTW Berlin HU Berlin NSU Size of Universities Employees Students This is the paradise !!!
  • 40. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 10 My Career 1990-97 Study of Computer Science at HU Berlin 1997-99 Research Assistent at HU Berlin 1999 How to continue? Hard decision! 1999-03 Doctoral Student at University of Karlsruhe (today: KIT) 2003-07 Post-Doc, École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland 2007-11 Senior Engineer in small software company, Berlin 2011 -- Professor at HTW Berlin
  • 41. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 11 My Period of Writing PhD Thesis • 2 years preliminary research work at HU Berlin • my group in Karlsruhe - 2 professors - 2 post-docs - 4 phd students  funding from DFG (Deutsche Forschungsgemeinschaft): salary, equipement, travelling  basically no teaching obligations - appr. 5-10 student assistents
  • 42. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 12 My Period of Writing PhD Thesis • 2 years preliminary research work at HU Berlin • my group in Karlsruhe - 2 professors - 2 post-docs - 4 phd students  funding from DFG (Deutsche Forschungsgemeinschaft): salary, equipement, travelling  basically no teaching obligations - appr. 5-10 student assistents We have the worst PhD supervisor ever, because he does not supervise us!
  • 43. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 13 My Period of Writing PhD Thesis • 2 years preliminary research work at HU Berlin • my group in Karlsruhe - 2 professors - 2 post-docs - 4 phd students  funding from DFG (Deutsche Forschungsgemeinschaft): salary, equipement, travelling  basically no teaching obligations - appr. 5-10 student assistents We have the worst PhD supervisor ever, because he does not supervise us! We have the best PhD supervisor ever, because he does not supervise us!
  • 44. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 14 How to find open Research Position? • Ask your professor/supervisor here in Nsk - people meet at conferences/workshops and disseminate open positions • Go to www.academics.de - offers alert service - informative links
  • 45. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 15 Types of PhD Positions • assistent position at university (Landesstelle) + contract extension no problem - sometimes time-consuming teaching obligations • research position at university (e.g. DFG financed) + focus on research; no teaching - sometimes hard to get project extension • position at research institute (Fraunhofer, Leibniz) + working on industry problems - overloaded with work to reach next milestone • research position in industry (Daimler Benz, Siemens) + working on industry problems - no strong supervision; danger to become 'ordinary' project member
  • 46. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 16 Initiative for Academic Excellence • Initiated by chancellor Gerhard Schröder Idea: Universities and clusters can apply for special status "Place of Excellence" - selected universities get huge research money from Federal budget - highly competitive (only 5-10 universities got status) - only already renowned universities have chance to become successful Rational: Germany wants to "become better" in world- wide rankings
  • 47. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 17 Consequences of Excellence Initiative • currently a lot of money "in the system" • many interesting projects • a lot of open positions :-) - also due to the current very good job market  many talented graduates go to industry
  • 48. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 18 Consequences of Excellence Initiative • currently a lot of money "in the system" • many interesting projects • a lot of open positions :-) - also due to the current very good job market  many talented graduates go to industry !!! However !!! - still only non-permanent positions - becoming a professor after PhD project became even more difficult (due to many qualified colleages that completed PhD as well)
  • 49. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 19 Will I have enough money to survive? • as a PhD student: no fees to be paid
  • 50. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 20 Will I have enough money to survive? • as a PhD student: no fees to be paid • Salary usually according to Tv-L 13: currently 3500 € per month - from this appr. 50% reduction for taxes, health insurance, pension plan - !Attention! some research projects offer only 50% jobs  "officially" 50% workload, but for sure only 50% payment
  • 51. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 21 Will I have enough money to survive? • as a PhD student: no fees to be paid • Salary usually according to Tv-L 13: currently 3500 € per month - from this appr. 50% reduction for taxes, health insurance, pension plan - !Attention! some research projects offer only 50% jobs  "officially" 50% workload, but for sure only 50% payment • Some prices: - lunch in cafeteria: appr. 4 € - food from supermarket: appr. 150 € per month - 1-room flat in Berlin: from 400 € per month
  • 52. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 22 Final Recommendations • Do not worry about German language skills - helpful in private life, but not mandatory at university • my favourite position: research at university with professor having 3-4 PhD students • getting an 1-year-contract initially is rather normal • publications - do not wait too long with your first one - write only if you found out something worth to be told - also read books/articles on "How to write a good paper?/How to give a good talk?"
  • 53. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 23 Final Recommendations Prof. Tom Henzinger: „Strive always to be as good as you can!“ (when writing applications,writing papers, giving talks)
  • 54. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 24 Thank you!