• No results found

CWI SWAT & Rascal

N/A
N/A
Protected

Academic year: 2022

Share "CWI SWAT & Rascal"

Copied!
73
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Software Analysis And Transformation

CWI SWAT

& Rascal

NWO Special Interest Group Software Engineering Nov 14th, 2013

Jurgen Vinju

Friday, November 15, 13

(2)

SWAT - SoftWare Analysis And Transformation

Centrum Wiskunde & Informatica

Programming languages and systems

Algol

Python

ASF+SDF, Rascal

MonetDB

Software Improvement Group (spin-off)

Software Quality Assessment & Monitoring

Reverse Engineering

CWI SWAT

INRIA ATEAMS

all about source code

supporting the tasks of programmers

Master Software Engineering @{Universiteit van Amsterdam, VU, HvA}

SWAT

Master SE

ATEAMS

Friday, November 15, 13

(3)

SWAT - SoftWare Analysis And Transformation

Today

• What and why do we research software at CWI?

• How? A glimpse of Rascal.

• Discussions

• What is “software engineering” to you?

• Quality for scientific software

Friday, November 15, 13

(4)

SWAT - SoftWare Analysis And Transformation

SWAT team

Friday, November 15, 13

(5)

SWAT - SoftWare Analysis And Transformation

The problem with software is not in

constructing it

(given sufficiently experienced architects & engineers)

Friday, November 15, 13

(6)

SWAT - SoftWare Analysis And Transformation

The problem is in understanding

existing software in order to improve it

(and a lot of software exists)

Friday, November 15, 13

(7)

We study software systems:

their design, their construction and their inevitable evolution.

• learning to understand software systems

• learning to improve them

• focusing on complexity as the quality attribute

• studying the causes of software complexity

• studying solutions to get simpler software

• helping programmers to be more effective while

• designing, constructing, maintaining, testing, debugging

• shaping the future of programming languages and IDEs

(NASA mission control, apollo 13)

Friday, November 15, 13

(8)

SWAT - SoftWare Analysis And Transformation

Software is not so difficult to

understand, but it is extremely complex

(Cari Buziak, Celtic Knot)

Friday, November 15, 13

(9)

SWAT - SoftWare Analysis And Transformation

Software - large and complex structures of computer instructions, written and read by man, executed by computers.

“marked by a senseless, disorienting, often menacing complexity...” (Infoplease.com)

Kafkaesque

Friday, November 15, 13

(10)

Friday, November 15, 13

(11)

SWAT - SoftWare Analysis And Transformation

Solution...

Tools

Friday, November 15, 13

(12)

SWAT - SoftWare Analysis And Transformation

Transformation & Analysis

• (de)optimization

• GOTO removal

• Bug fixing (Y2K)

Porting

• Refactoring

• Model-to-code

• Domain specific languages

• Code-to-model

• Quality assessment

• Mining trends

• Dead code detection

• Bug detection

• Model checking

• Impact analysis

• Guided random testing

• Visualization

Raphael (1509)

(etc)

Friday, November 15, 13

(13)

SWAT - SoftWare Analysis And Transformation

Research

Tools

Application

“every week a new tool”

Friday, November 15, 13

(14)

SWAT - SoftWare Analysis And Transformation

Research

Tools

Software Rascal

Friday, November 15, 13

(15)

(Brueghel, Tower of Babel)

Friday, November 15, 13

(16)

SWAT - SoftWare Analysis And Transformation

Code

Model

Picture

Generation Extraction

Formalization Visualization

Transformation

Conversion Analysis

Execution

Rendering

(Brueghel, Tower of Babel)

Rascal is a

DSL for

programming meta

Friday, November 15, 13

(17)

SWAT - SoftWare Analysis And Transformation

Diversity

Multi-disciplinary

Precision vs Efficiency

The three challenges

Friday, November 15, 13

(18)

SWAT - SoftWare Analysis And Transformation

Example Rascal Tasks

Friday, November 15, 13

(19)

SWAT - SoftWare Analysis And Transformation

Example Rascal Tasks

• Measure aspects of source code

Friday, November 15, 13

(20)

SWAT - SoftWare Analysis And Transformation

Example Rascal Tasks

• Measure aspects of source code

• Compare different versions of the same system

Friday, November 15, 13

(21)

SWAT - SoftWare Analysis And Transformation

Example Rascal Tasks

• Measure aspects of source code

• Compare different versions of the same system

• Consistently transform a big system to another

Friday, November 15, 13

(22)

SWAT - SoftWare Analysis And Transformation

Example Rascal Tasks

• Measure aspects of source code

• Compare different versions of the same system

• Consistently transform a big system to another

• Translate between different formalisms

Friday, November 15, 13

(23)

SWAT - SoftWare Analysis And Transformation

Example Rascal Tasks

• Measure aspects of source code

• Compare different versions of the same system

• Consistently transform a big system to another

• Translate between different formalisms

• Consolidate data about software systems (bug trackers) with source code analysis results.

Friday, November 15, 13

(24)

SWAT - SoftWare Analysis And Transformation

Example Rascal Tasks

• Measure aspects of source code

• Compare different versions of the same system

• Consistently transform a big system to another

• Translate between different formalisms

• Consolidate data about software systems (bug trackers) with source code analysis results.

• Generate code from a new kind of model (DSL)

Friday, November 15, 13

(25)

SWAT - SoftWare Analysis And Transformation

Example Rascal Tasks

• Measure aspects of source code

• Compare different versions of the same system

• Consistently transform a big system to another

• Translate between different formalisms

• Consolidate data about software systems (bug trackers) with source code analysis results.

• Generate code from a new kind of model (DSL)

• Translate from code to a model to generate test cases

Friday, November 15, 13

(26)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

Friday, November 15, 13

(27)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

• “Derric” [Jeroen van den Bos, Tijs van der Storm]

Friday, November 15, 13

(28)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

• “Derric” [Jeroen van den Bos, Tijs van der Storm]

• Recover deleted, permuted, lost, evidence from data sources in the terabyte range, and quickly!

Friday, November 15, 13

(29)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

• “Derric” [Jeroen van den Bos, Tijs van der Storm]

• Recover deleted, permuted, lost, evidence from data sources in the terabyte range, and quickly!

• State-of-the-art: hand optimized/specialized code

Friday, November 15, 13

(30)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

• “Derric” [Jeroen van den Bos, Tijs van der Storm]

• Recover deleted, permuted, lost, evidence from data sources in the terabyte range, and quickly!

• State-of-the-art: hand optimized/specialized code

• Problem: variety of file formats [dialects]

Friday, November 15, 13

(31)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

• “Derric” [Jeroen van den Bos, Tijs van der Storm]

• Recover deleted, permuted, lost, evidence from data sources in the terabyte range, and quickly!

• State-of-the-art: hand optimized/specialized code

• Problem: variety of file formats [dialects]

• Solution: generate and optimize automatically

Friday, November 15, 13

(32)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

• “Derric” [Jeroen van den Bos, Tijs van der Storm]

• Recover deleted, permuted, lost, evidence from data sources in the terabyte range, and quickly!

• State-of-the-art: hand optimized/specialized code

• Problem: variety of file formats [dialects]

• Solution: generate and optimize automatically

• Model: detailed file format description

Friday, November 15, 13

(33)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

• “Derric” [Jeroen van den Bos, Tijs van der Storm]

• Recover deleted, permuted, lost, evidence from data sources in the terabyte range, and quickly!

• State-of-the-art: hand optimized/specialized code

• Problem: variety of file formats [dialects]

• Solution: generate and optimize automatically

• Model: detailed file format description

• Code: plugins for file carver in Java

Friday, November 15, 13

(34)

SWAT - SoftWare Analysis And Transformation

Rascal for Digital Forensics

• “Derric” [Jeroen van den Bos, Tijs van der Storm]

• Recover deleted, permuted, lost, evidence from data sources in the terabyte range, and quickly!

• State-of-the-art: hand optimized/specialized code

• Problem: variety of file formats [dialects]

• Solution: generate and optimize automatically

• Model: detailed file format description

• Code: plugins for file carver in Java

• Success factors: expert knowledge + rascal implementation

Friday, November 15, 13

(35)

SWAT - SoftWare Analysis And Transformation

One slide DSL

Code Model Picture

Friday, November 15, 13

(36)

SWAT - SoftWare Analysis And Transformation

One slide DSL

metro {

Centraal Waterloo Weesperplein Wibautstraat Amstel;

Amstel Spaklerweg Overamstel Rai Zuid;

Rai Zuid Amstelveenseweg Lelylaan Sloterdijk;

Centraal Rokin FerdinandBol Zuid;

}

Code

Model Picture

Friday, November 15, 13

(37)

SWAT - SoftWare Analysis And Transformation

One slide DSL

metro {

Centraal Waterloo Weesperplein Wibautstraat Amstel;

Amstel Spaklerweg Overamstel Rai Zuid;

Rai Zuid Amstelveenseweg Lelylaan Sloterdijk;

Centraal Rokin FerdinandBol Zuid;

}

{ <“Centraal”, “Waterloo”>,

Code Model Picture

Friday, November 15, 13

(38)

SWAT - SoftWare Analysis And Transformation

One slide DSL

metro {

Centraal Waterloo Weesperplein Wibautstraat Amstel;

Amstel Spaklerweg Overamstel Rai Zuid;

Rai Zuid Amstelveenseweg Lelylaan Sloterdijk;

Centraal Rokin FerdinandBol Zuid;

}

{ <“Centraal”, “Waterloo”>,

<“Waterloo”,” Weesperplein”>, … }

Code Model Picture

Friday, November 15, 13

(39)

SWAT - SoftWare Analysis And Transformation

One slide DSL

metro {

Centraal Waterloo Weesperplein Wibautstraat Amstel;

Amstel Spaklerweg Overamstel Rai Zuid;

Rai Zuid Amstelveenseweg Lelylaan Sloterdijk;

Centraal Rokin FerdinandBol Zuid;

}

{ <“Centraal”, “Waterloo”>,

<“Waterloo”,” Weesperplein”>, … }

digraph Metro {

node [shape=box]

Centraal -> Waterloo

Waterloo -> Weesperplein ...

Centraal [shape=ellipse]

}

Code Model Picture

Friday, November 15, 13

(40)

SWAT - SoftWare Analysis And Transformation

Code Model Picture

Friday, November 15, 13

(41)

SWAT - SoftWare Analysis And Transformation

module Metro

Code Model Picture

Friday, November 15, 13

(42)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

Code Model Picture

Friday, November 15, 13

(43)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ;

Code Model Picture

Friday, November 15, 13

(44)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

Code Model Picture

Friday, November 15, 13

(45)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

Code Model Picture

Friday, November 15, 13

(46)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

Code Model Picture

Friday, November 15, 13

(47)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source),

Code Model Picture

Friday, November 15, 13

(48)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

Code Model Picture

Friday, November 15, 13

(49)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

Code Model Picture

Friday, November 15, 13

(50)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

void synthesizeDotGraph(loc target, rel[Id from,Id to] metro) {

Code Model Picture

Friday, November 15, 13

(51)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

void synthesizeDotGraph(loc target, rel[Id from,Id to] metro) { writeFile(target,”digraph Metro { node [shape=box]

Code Model Picture

Friday, November 15, 13

(52)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

void synthesizeDotGraph(loc target, rel[Id from,Id to] metro) { writeFile(target,”digraph Metro { node [shape=box]

‘<for (<from, to> <- metro) {>

Code Model Picture

Friday, November 15, 13

(53)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

void synthesizeDotGraph(loc target, rel[Id from,Id to] metro) { writeFile(target,”digraph Metro { node [shape=box]

‘<for (<from, to> <- metro) {>

‘ <from> -\> <to><}>

Code Model Picture

Friday, November 15, 13

(54)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

void synthesizeDotGraph(loc target, rel[Id from,Id to] metro) { writeFile(target,”digraph Metro { node [shape=box]

‘<for (<from, to> <- metro) {>

‘ <from> -\> <to><}>

‘<for (st <- metro<from>, isHub(metro, st)){>

Code Model Picture

Friday, November 15, 13

(55)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

void synthesizeDotGraph(loc target, rel[Id from,Id to] metro) { writeFile(target,”digraph Metro { node [shape=box]

‘<for (<from, to> <- metro) {>

‘ <from> -\> <to><}>

‘<for (st <- metro<from>, isHub(metro, st)){>

‘ <st> [shape=ellipse]<}>

Code Model Picture

Friday, November 15, 13

(56)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

void synthesizeDotGraph(loc target, rel[Id from,Id to] metro) { writeFile(target,”digraph Metro { node [shape=box]

‘<for (<from, to> <- metro) {>

‘ <from> -\> <to><}>

‘<for (st <- metro<from>, isHub(metro, st)){>

‘ <st> [shape=ellipse]<}>

‘}”);

Code Model Picture

Friday, November 15, 13

(57)

SWAT - SoftWare Analysis And Transformation

module Metro

start syntax System = “metro” “{“ Track* tracks “}”;

syntax Track = Id+ stations “;” ; lexical Id = [A-Za-z][A-Za-z0-9]*;

layout WS = [\ \t\n\r]*;

rel[Id,Id] extractMetroGraph(loc source) =

{<from, to> | /Track t := parse(#start[System], source), (Track) `<Id+ _> <Id from> <Id to> <Id+ _>;` := t};

bool isHub(rel[Id,Id] metro, Id station) = size(metro[Id]) > 1;

void synthesizeDotGraph(loc target, rel[Id from,Id to] metro) { writeFile(target,”digraph Metro { node [shape=box]

‘<for (<from, to> <- metro) {>

‘ <from> -\> <to><}>

‘<for (st <- metro<from>, isHub(metro, st)){>

‘ <st> [shape=ellipse]<}>

‘}”);

Code Model Picture

Friday, November 15, 13

(58)

SWAT - SoftWare Analysis And Transformation

A one-slide DSL

• What is the point?

• Rapid tool development

• No boilerplate

No glue

No magic

• Done. Next!

• This works for

• all kinds of meta-programming tools

• all kinds of languages

Code Model Picture

Friday, November 15, 13

(59)

SWAT - SoftWare Analysis And Transformation

IDE “generation”

Friday, November 15, 13

(60)

SWAT - SoftWare Analysis And Transformation

Current applications

• PHP, Lua static analysis of dynamic languages

• Modular/Language parametric refactoring

• Grammar engineering

• Domain specific languages

• Pacioli - Computational auditing

• Derric - Digital Forensics

• QL - Complex Questionaires

• GPU programming

Friday, November 15, 13

(61)

SWAT - SoftWare Analysis And Transformation

Rascal

• http://www.rascal-mpl.org

• open-source on github

• tools for tools

• documented: http://tutor.rascal-mpl.org

• supported: http://ask.rascal-mpl.org

• “alpha” = under development (language & libraries)

• active: compiler & static checker, adding support for units

& dimensions, scripting languages, grammars for legacy languages, libraries for SMT solvers, etc. etc.

Friday, November 15, 13

(62)

SWAT - SoftWare Analysis And Transformation

D.I.Y.

• That’s the goal

• We teach and use it

• Caveat emptor

Friday, November 15, 13

(63)

SWAT - SoftWare Analysis And Transformation

Discussion(s)

Friday, November 15, 13

(64)

SWAT - SoftWare Analysis And Transformation

Discussion(s)

• What does “software engineering” mean to you?

• critical or non-critical? has this changed?

• stakeholders, requirements, deadlines

• art, science or engineering (or all)

Friday, November 15, 13

(65)

SWAT - SoftWare Analysis And Transformation

Discussion(s)

• What does “software engineering” mean to you?

• critical or non-critical? has this changed?

• stakeholders, requirements, deadlines

• art, science or engineering (or all)

• Quality for scientific software

• what are important quality aspects?

• which tools are used?

• which methods?

• which problems are hard to solve?

• what does the future look like?

Friday, November 15, 13

(66)

SWAT - SoftWare Analysis And Transformation

Take home messages

• http://www.rascal-mpl.org

• open-source

• tools for tools

CWI SWAT

• studies real software

• in software domains: bio, finance, forensics, law, …

• builds and evaluates tools

• UvA Master Software Engineering exists

Friday, November 15, 13

(67)

SWAT - SoftWare Analysis And Transformation

list[int] even(int max) { list[int] result = [];

for (int i <- [0..max]) { if (i % 2 == 0) {

result += i;

} }

return result;

}

list[int] even(int max)

= [ i | i <- [0..max], i % 2 == 0];

From coding to declaring

Friday, November 15, 13

(68)

SWAT - SoftWare Analysis And Transformation

list[int] even(int max) { list[int] result = [];

for (int i <- [0..max], i%2 == 0) { result += i;

}

return result;

}

From coding to declaring

Friday, November 15, 13

(69)

SWAT - SoftWare Analysis And Transformation

list[int] even(int max) { result = [];

for (i <- [0..max], i%2 == 0) { result += i;

}

return result;

}

From coding to declaring

Friday, November 15, 13

(70)

SWAT - SoftWare Analysis And Transformation

list[int] even(int max) {

r = for (i <- [0..max], i%2 == 0) append i;

return r;

}

From coding to declaring

Friday, November 15, 13

(71)

SWAT - SoftWare Analysis And Transformation

list[int] even(int max) {

return for (i <- [0..max], i%2 == 0) append i;

}

From coding to declaring

Friday, November 15, 13

(72)

SWAT - SoftWare Analysis And Transformation

list[int] even(int max) {

return [i | i <- [0..max], i%2 == 0];

}

From coding to declaring

Friday, November 15, 13

(73)

SWAT - SoftWare Analysis And Transformation

list[int] even(int max)

= [i | i <- [0..max], i%2 == 0];

From coding to declaring

Friday, November 15, 13

Referenties

Outline

GERELATEERDE DOCUMENTEN

Here, y (for firm i and year t) denotes the log of “new product sales per employee.” We include lagged values of the following independent variables: “NFL” includes variables

periodogram, but if one shift the periodograms in order to correct the Doppler effect and the spin-down, and then take the average, we have a single big peak. In this case, for

Imports Imports of goods and services comprise all transactions between residents of a country and the rest of the world involving a change of ownership from nonresidents to

The results show that IFRS adoption in a country with a low rule of law leads to a decrease in the magnitude of earnings management, but it does not lead to a change in the

Deze rente wordt niet weergegeven bij producten die in de markt verhandeld worden, en moeten we daarom zelf vinden.. Stel bijvoorbeeld dat in de markt voor een 2-jaars le- ning

Finally we used the feature selection and classifier results to get a better understanding of the spatiotemporal evolution of the decision making process through the brain, and to

Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers) Please check the document version of this publication:.. • A submitted manuscript is

Index Terms—Canonical decomposition, higher order tensor, in- dependent component analysis (ICA), parallel factor (PARAFAC) analysis, simultaneous diagonalization,