A RefactorErl Projekt Erlang programok statikus elemzése és

Size: px
Start display at page:

Download "A RefactorErl Projekt Erlang programok statikus elemzése és"

Transcription

1 A RefactorErl Projekt Erlang programok statikus elemzése és refaktorálása Tóth Melinda KMOP / pályázat A kutatás-fejlesztési központok fejlesztése és megerősítése június 19., Budapest Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 1 / 9

2 Az alprojekt célkitűzései Szoftverek karbantartásának és átalakításának támogatása Refaktorálás Forráskód egységesítés Tulajdonság alapú tesztelés Kódmegértés támogatás Alkalmazás-specifikus nyelv fejlesztés Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 2 / 9

3 Erlang Ericsson által fejlesztett Telekommunikációs szoftverek írásának megkönnyítése Széleskörű ipari használat Sok millió soros szoftverek Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 3 / 9

4 RefactorErl mérföldkövek Feladat az Ericssonból 2007, Augusztus - Első kiadás 2008, Augusztus - 15 refaktorálás az újratervezett rendszerben 2009, Október - Lekérdezések Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 4 / 9

5 RefactorErl Statikus forráskód elemző és transzformáló eszköz Ipari kódok elemzésére tervezve Perzisztens adattárolás Inkrementális elemzés Hatékony adatelérés Biztonságos transzformálás Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 5 / 9

6 3-rétegű gráf modell 1 Lexikális réteg Tokenek Preprocesszálás Comment, whitespace 2 Szintaktikus réteg Absztrakt Szintaxis-Fa File 3 Szemantikus réteg Modul, függvény, rekord, változó, környezet elemzés Adatfolyam, mellékhatás Aszinkron elemző infrastruktúra Utóelemzések: dinamikus függvényhívás elemzés, folyamatelemzés, ets elemzés Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 6 / 9

7 -module(my). -define(eol(x), X ++ "\n"). f(s) -> io:put chars(?eol(s)). my.erl function put chars my modq var atom atom f io app S ++ var string S ++ "\n" f ( S ) -> io : put chars (? EOL ( S ) ). Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 7 / 9

8 -module(my). -define(eol(x), X ++ "\n"). f(s) -> io:put chars(?eol(s)). my.erl function put chars my modq var atom atom f io app S ++ var string S ++ "\n" f ( S ) -> io : put chars (? EOL ( S ) ). Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 7 / 9

9 -module(my). -define(eol(x), X ++ "\n"). f(s) -> io:put chars(?eol(s)). my.erl function put chars my modq var atom atom f io app S ++ var string S ++ "\n" f ( S ) -> io : put chars (? EOL ( S ) ). Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 7 / 9

10 -module(my). -define(eol(x), X ++ "\n"). f(s) -> io:put chars(?eol(s)). my.erl function put chars my modq var atom atom f io app S ++ var string S ++ "\n" f ( S ) -> io : put chars (? EOL ( S ) ). Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 7 / 9

11 -module(my). -define(eol(x), X ++ "\n"). f(s) -> io:put chars(?eol(s)). my.erl function put chars my modq var atom atom f io app S ++ var string S ++ "\n" f ( S ) -> io : put chars (? EOL ( S ) ). Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 7 / 9

12 -module(my). -define(eol(x), X ++ "\n"). f(s) -> io:put chars(?eol(s)). my.erl function put chars my modq var atom atom f io app S ++ var string S ++ "\n" f ( S ) -> io : put chars (? EOL ( S ) ). Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 7 / 9

13 -module(my). -define(eol(x), X ++ "\n"). f(s) -> io:put chars(?eol(s)). my.erl function put chars my modq var atom atom f io app S ++ var string S ++ "\n" f ( S ) -> io : put chars (? EOL ( S ) ). Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 7 / 9

14 Gráf tárolás és kezelés A csúcsok és élek Mnesia táblákban vannak tárolva* Csúcs attribútumok: token szöveg, változó név,... Élcímkék: sub, funref, varref,... Gráf bejárás: szűrt élcímke sorozat Az élek indexeltek Nem ugrik meg a lekérdezések költsége A gyakran használt lekérdezések fix hosszúak Szintaxis alapú transzformációk, automatikus token kezelés Inkrementális, automatizált szemantikus elemzések Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 8 / 9

15 Alternatív tárolási módok NIF Gráf: C++ Kyoto Cabinet: C Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 9 / 9

16 Refaktorálás A forráskód szerkezetének átalakítása Viselkedés/jelentés megőrzése RefactorErl eredményessége Szintaktikus átalakítás Szemantikus és lexikális struktúra automatikusan áll helyre 25 megvalósított transzformáció Metrika vezérelt átalakítások Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 10 / 9

17 Implementált transzformációk Rename variable function record, record field macro module/header file Function interface introduce function argument reorder parameters introduce tuple eliminate/introduce import Move definition macro record function Expression structure eliminate/introduce variable eliminate/introduce function eliminate macro application eliminate fun-expression Data structure Introduce record Upgrade module interface Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 11 / 9

18 Tulajdonság alapú tesztelés A transzformációk helyességének ellenőrzése QuickCheck/PropEr tulajdonság alapú tesztelővel A refaktorálások tulajdonságai formalizáltak Viselkedés megőrzés ellenőrzése Véletlenszerűen generált transzformációs paraméterek Véletlenszerűen generált programokon Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 12 / 9

19 Kódmegértés támogatása Szemantikus információ elérhetővé tétele Lekérdező nyelv Függőségi elemzések és vizualizáció Metrikák Klaszterezés Kód böngészés beépített lekérdezésekkel Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 13 / 9

20 Lekérdező nyelv Az Erlang nyelv jellemzőire és szemantikus fogalmaira épül Entitás + szelektor + tulajdonság mods.funs.refs mods[name=alma].funs.refs Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 14 / 9

21 Syntax of semantic queries semantic_query ::= initial_selection [. query_sequence] initial_selection ::= initial_selector [ [ filter ] ] query_sequence ::= query [. query_sequence] query ::= selection iteration closure property_query selection ::= selector [ [ filter ] ] iteration ::= { query_sequence } int [ [ filter ] ] closure ::= ( query_sequence ) int [ [ filter ] ] ( query_sequence )+ [ [ filter ] ] property_query ::= property [ [ filter ] ] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 15 / 9

22 Syntax of semantic queries semantic_query ::= initial_selection [. query_sequence] initial_selection ::= initial_selector [ [ filter ] ] query_sequence ::= query [. query_sequence] query ::= selection iteration closure property_query selection ::= selector [ [ filter ] ] iteration ::= { query_sequence } int [ [ filter ] ] closure ::= ( query_sequence ) int [ [ filter ] ] ( query_sequence )+ [ [ filter ] ] property_query ::= property [ [ filter ] ] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 15 / 9

23 Syntax of semantic queries semantic_query ::= initial_selection [. query_sequence] initial_selection ::= initial_selector [ [ filter ] ] query_sequence ::= query [. query_sequence] query ::= selection iteration closure property_query selection ::= selector [ [ filter ] ] iteration ::= { query_sequence } int [ [ filter ] ] closure ::= ( query_sequence ) int [ [ filter ] ] ( query_sequence )+ [ [ filter ] ] property_query ::= property [ [ filter ] ] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 15 / 9

24 Szemantikus lekérdezések Value of a Call Side Dynamic @fun.dyncalled Sent messages mods.funs.exprs [.sub[index==1 and value==upd] and type==send expr] Received messages mods.funs. exprs[type==receive expr].sub[.sub[index==1 and value==upd] and type == tuple] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 16 / 9

25 Szemantikus lekérdezések Value of a Call Side Dynamic @fun.dyncalled Sent messages mods.funs.exprs [.sub[index==1 and value==upd] and type==send expr] Received messages mods.funs. exprs[type==receive expr].sub[.sub[index==1 and value==upd] and type == tuple] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 16 / 9

26 Szemantikus lekérdezések Value of a Call Side Dynamic @fun.dyncalled Sent messages mods.funs.exprs [.sub[index==1 and value==upd] and type==send expr] Received messages mods.funs. exprs[type==receive expr].sub[.sub[index==1 and value==upd] and type == tuple] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 16 / 9

27 Szemantikus lekérdezések Value of a Call Side Dynamic @fun.dyncalled Sent messages mods.funs.exprs [.sub[index==1 and value==upd] and type==send expr] Received messages mods.funs. exprs[type==receive expr].sub[.sub[index==1 and value==upd] and type == tuple] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 16 / 9

28 Szemantikus lekérdezések Value of a Call Side Dynamic @fun.dyncalled Sent messages mods.funs.exprs [.sub[index==1 and value==upd] and type==send expr] Received messages mods.funs. exprs[type==receive expr].sub[.sub[index==1 and value==upd] and type == tuple] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 16 / 9

29 Szemantikus lekérdezések Value of a Call Side Dynamic @fun.dyncalled Sent messages mods.funs.exprs [.sub[index==1 and value==upd] and type==send expr] Received messages mods.funs. exprs[type==receive expr].sub[.sub[index==1 and value==upd] and type == tuple] Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 16 / 9

30 Függőségi elemzés Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 17 / 9

31 A szoftver Fejlesztő környezetbe építve: Emacs, Vi, Eclipse Interaktív és szkriptelhető Erlang shell interfész Parancssoros használat Webes felület Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 18 / 9

32 Webes Felület Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 19 / 9

33 Eredmények Megjelent cikkek, előadások, poszterek: Szakdolgozat/Diplomamunka: 14 5 TDK dolgozat: egy 2. díj, egy 3. díj az OTDK-n 2011-ben, 2 dolgozat bemutatása 2013-ban Bevont hallgatók száma: 10-20/szemeszter Oktatási hasznosítás: Szoftvertechnológia laborok, Erlang Szoftver: RefactorErl Tóth Melinda (ELTE IK.) Statikus elemzés június 19., Budapest 20 / 9

Scala. A Java jövője. Háber János

Scala. A Java jövője. Háber János Scala A Java jövője Háber János Scala > Java? - JVM-en fut - Típusos - Teljesen objektum orientált - Funkcionális programozás támogatása - Minta illesztés - Többszörös öröklődés (Mixin) - Implicit konverzió

More information

Refactoring Erlang Programs

Refactoring Erlang Programs Erlang programs 1 Zoltán Horváth, László Lövei, Zoltán Csörnyei, Tamás Kozsik, Anikó Víg, Tamás Nagy, Roland Király, Melinda Tóth, Róbert Kitlei Dept. Programming Languages and Compilers Eötvös Loránd

More information

Google Web Toolkit GWT

Google Web Toolkit GWT THE INTERNET,mapped on the opposite page, is a scalefree network in that Google Web Toolkit dis.'~tj port,from BYALBERTU\SZLOBARABASI ANDERICBONABEAU THE INTERNET,mapped on the opposite page, is a scalefree

More information

Note: This App is under development and available for testing on request. Note: This App is under development and available for testing on request. Note: This App is under development and available for

More information

E-KERESKEDELEM MOBILE WALLET-TEL

E-KERESKEDELEM MOBILE WALLET-TEL 1 E-KERESKEDELEM MOBILE WALLET-TEL Ács Zoltán Cellum Copyright 2015 Cellum. All rights reserved. 2 CURRENT TOP SMARTPHONES now are more powerful than those computers that put man on the moon 3 AZ E- ÉS

More information

Quality Management Tools Of Chemical And Bio Industrial Data Systems And Procedures. Gergely Viczián

Quality Management Tools Of Chemical And Bio Industrial Data Systems And Procedures. Gergely Viczián Ph.D. Thesis Quality Management Tools Of Chemical And Bio Industrial Data Systems And Procedures Gergely Viczián M. Sc. in Electrical engineering and Economy Ph.D. advisor: Dr. Klara Kollár-Hunek Consulant:

More information

Bálványfa irtási kísérletek a Kisalföldi Life+ program keretében

Bálványfa irtási kísérletek a Kisalföldi Life+ program keretében Bálványfa irtási kísérletek a Kisalföldi Life+ program keretében Peszlen Roland, Endrődyné Király Nikolett, Takács Gábor Fertő-Hanság Nemzeti Park Igazgatóság Szidonya István, Kele Ferenc IST Consulting

More information

03 - Lexical Analysis

03 - Lexical Analysis 03 - Lexical Analysis First, let s see a simplified overview of the compilation process: source code file (sequence of char) Step 2: parsing (syntax analysis) arse Tree Step 1: scanning (lexical analysis)

More information

Introduction to Java

Introduction to Java Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high

More information

CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS

CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS 66 CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS 5.1 INTRODUCTION In this research work, two new techniques have been proposed for addressing the problem of SQL injection attacks, one

More information

Special Directions for this Test

Special Directions for this Test 1 Spring, 2013 Name: (Please do not write your id number!) COP 4020 Programming Languages I Test on Haskell and Functional Programming Special Directions for this Test This test has 7 questions and pages

More information

Parameter Passing. Standard mechanisms. Call by value-result Call by name, result

Parameter Passing. Standard mechanisms. Call by value-result Call by name, result Parameter Passing Standard mechanisms Call by value Call by reference Other methods Call by value-result Call by name, result Terms Function definition where the details of the function are presented (type,

More information

Protecting Wireless Networks of the Critical Information Infrastructures

Protecting Wireless Networks of the Critical Information Infrastructures NATIONAL UNIVERSITY OF PUBLIC SERVICES PÉTER VARGA Official and author s review of PhD thesis titled Protecting Wireless Networks of the Critical Information Infrastructures Scientific advisor: Prof. Dr.

More information

Outline Basic concepts of Python language

Outline Basic concepts of Python language Data structures: lists, tuples, sets, dictionaries Basic data types Examples: int: 12, 0, -2 float: 1.02, -2.4e2, 1.5e-3 complex: 3+4j bool: True, False string: "Test string" Conversion between types int(-2.8)

More information

Compilers. Introduction to Compilers. Lecture 1. Spring term. Mick O Donnell: [email protected] Alfonso Ortega: alfonso.ortega@uam.

Compilers. Introduction to Compilers. Lecture 1. Spring term. Mick O Donnell: michael.odonnell@uam.es Alfonso Ortega: alfonso.ortega@uam. Compilers Spring term Mick O Donnell: [email protected] Alfonso Ortega: [email protected] Lecture 1 to Compilers 1 Topic 1: What is a Compiler? 3 What is a Compiler? A compiler is a computer

More information

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint) TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from

More information

The Clean programming language. Group 25, Jingui Li, Daren Tuzi

The Clean programming language. Group 25, Jingui Li, Daren Tuzi The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was

More information

Syntax Check of Embedded SQL in C++ with Proto

Syntax Check of Embedded SQL in C++ with Proto Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 383 390. Syntax Check of Embedded SQL in C++ with Proto Zalán Szűgyi, Zoltán Porkoláb

More information

Compiler Construction

Compiler Construction Compiler Construction Regular expressions Scanning Görel Hedin Reviderad 2013 01 23.a 2013 Compiler Construction 2013 F02-1 Compiler overview source code lexical analysis tokens intermediate code generation

More information

Hungarian Style Guide for Community

Hungarian Style Guide for Community Hungarian Style Guide for Community Table of Contents Introduction... 4 Approach... 4 Content Principles...4 The Facebook Voice...4 Basics... 5 Be Brief...5 Consider Your Audience...5 Make it Readable...6

More information

Topics. Query Repo Model Changeset

Topics. Query Repo Model Changeset Ecto @emjii Topics Query Repo Model Changeset Query Query Based on LINQ Enabled by macros Database queries only LINQ Language Integrated Query Released 2007 Supported in C#, F# and VB.net LINQ from p in

More information

Visual Basic. murach's TRAINING & REFERENCE

Visual Basic. murach's TRAINING & REFERENCE TRAINING & REFERENCE murach's Visual Basic 2008 Anne Boehm lbm Mike Murach & Associates, Inc. H 1-800-221-5528 (559) 440-9071 Fax: (559) 440-0963 [email protected] www.murach.com Contents Introduction

More information

SQL Tables, Keys, Views, Indexes

SQL Tables, Keys, Views, Indexes CS145 Lecture Notes #8 SQL Tables, Keys, Views, Indexes Creating & Dropping Tables Basic syntax: CREATE TABLE ( DROP TABLE ;,,..., ); Types available: INT or INTEGER REAL or FLOAT CHAR( ), VARCHAR( ) DATE,

More information

Introduction to Lex. General Description Input file Output file How matching is done Regular expressions Local names Using Lex

Introduction to Lex. General Description Input file Output file How matching is done Regular expressions Local names Using Lex Introduction to Lex General Description Input file Output file How matching is done Regular expressions Local names Using Lex General Description Lex is a program that automatically generates code for

More information

Scanning and parsing. Topics. Announcements Pick a partner by Monday Makeup lecture will be on Monday August 29th at 3pm

Scanning and parsing. Topics. Announcements Pick a partner by Monday Makeup lecture will be on Monday August 29th at 3pm Scanning and Parsing Announcements Pick a partner by Monday Makeup lecture will be on Monday August 29th at 3pm Today Outline of planned topics for course Overall structure of a compiler Lexical analysis

More information

Sun a felsőoktatásban. Kállay Kristóf. Sun Microsystems Kft.

Sun a felsőoktatásban. Kállay Kristóf. Sun Microsystems Kft. Sun a felsőoktatásban Kállay Kristóf Sun Microsystems Kft. Miből lett a Sun neve? a) Angolul Nap, mely Kaliforniában sokat süt. b) Az alapítok nevéből (Scott McNealy, Ullrich Brandt, Nakajima Toshiko)

More information

The spatial transformation of the production structure of transnational corporations: a case study of Volkswagen

The spatial transformation of the production structure of transnational corporations: a case study of Volkswagen Eötvös Loránd University Faculty of Science PhD School of Earth Sciences Geography and Meteorology Programme Gábor Túry The spatial transformation of the production structure of transnational corporations:

More information

In-Memory Database: Query Optimisation. S S Kausik (110050003) Aamod Kore (110050004) Mehul Goyal (110050017) Nisheeth Lahoti (110050027)

In-Memory Database: Query Optimisation. S S Kausik (110050003) Aamod Kore (110050004) Mehul Goyal (110050017) Nisheeth Lahoti (110050027) In-Memory Database: Query Optimisation S S Kausik (110050003) Aamod Kore (110050004) Mehul Goyal (110050017) Nisheeth Lahoti (110050027) Introduction Basic Idea Database Design Data Types Indexing Query

More information

The Elective Part of the NSS ICT Curriculum D. Software Development

The Elective Part of the NSS ICT Curriculum D. Software Development of the NSS ICT Curriculum D. Software Development Mr. CHEUNG Wah-sang / Mr. WONG Wing-hong, Robert Member of CDC HKEAA Committee on ICT (Senior Secondary) 1 D. Software Development The concepts / skills

More information

Completing the Big Data Ecosystem:

Completing the Big Data Ecosystem: Completing the Big Data Ecosystem: in sqrrl data INC. August 3, 2012 Design Drivers in Analysis of big data is central to our customers requirements, in which the strongest drivers are: Scalability: The

More information

Compiling Recursion to Reconfigurable Hardware using CLaSH

Compiling Recursion to Reconfigurable Hardware using CLaSH Compiling Recursion to Reconfigurable Hardware using CLaSH Ruud Harmsen University of Twente P.O. Box 217, 7500AE Enschede The Netherlands [email protected] ABSTRACT Recursion is an important

More information

Theses of Doctoral (PhD) dissertation

Theses of Doctoral (PhD) dissertation Theses of Doctoral (PhD) dissertation E-LEARNING METHOD IN AGRICULTURAL SCIENCE Tamás Dövényi-Nagy Advisors: Prof. Dr. János Nagy Doctor of the Hungarian Academy of Sciences Dr. László Huzsvai associate

More information

Theory of Compilation

Theory of Compilation Theory of Compilation JLex, CUP tools CS Department, Haifa University Nov, 2010 By Bilal Saleh 1 Outlines JLex & CUP tutorials and Links JLex & CUP interoperability Structure of JLex specification JLex

More information

Other Map-Reduce (ish) Frameworks. William Cohen

Other Map-Reduce (ish) Frameworks. William Cohen Other Map-Reduce (ish) Frameworks William Cohen 1 Outline More concise languages for map- reduce pipelines Abstractions built on top of map- reduce General comments Speci

More information

Java technológiák 7. előadás A Struts keretrendszer

Java technológiák 7. előadás A Struts keretrendszer Java technológiák 7. előadás A Struts keretrendszer Sapientia - EMTE 2010 Struts keretrendszer Bevezető Struts és az MVC tervezési minta Struts Action osztály fejlesztése Struts Action konfigurálása Miért

More information

Felhő alapú üzemeltetési feladatok optimalizálása

Felhő alapú üzemeltetési feladatok optimalizálása Felhő alapú üzemeltetési feladatok optimalizálása itsmf Magyarország 11. szeminárium 2015. Október 30. Kozári Ákos ([email protected]) Bemutatkozás Kozári Ákos Senior PFE ITSM Consultancy [email protected]

More information

Tutorial on C Language Programming

Tutorial on C Language Programming Tutorial on C Language Programming Teodor Rus [email protected] The University of Iowa, Department of Computer Science Introduction to System Software p.1/64 Tutorial on C programming C program structure:

More information

Lexical analysis FORMAL LANGUAGES AND COMPILERS. Floriano Scioscia. Formal Languages and Compilers A.Y. 2015/2016

Lexical analysis FORMAL LANGUAGES AND COMPILERS. Floriano Scioscia. Formal Languages and Compilers A.Y. 2015/2016 Master s Degree Course in Computer Engineering Formal Languages FORMAL LANGUAGES AND COMPILERS Lexical analysis Floriano Scioscia 1 Introductive terminological distinction Lexical string or lexeme = meaningful

More information

Compiler I: Syntax Analysis Human Thought

Compiler I: Syntax Analysis Human Thought Course map Compiler I: Syntax Analysis Human Thought Abstract design Chapters 9, 12 H.L. Language & Operating Sys. Compiler Chapters 10-11 Virtual Machine Software hierarchy Translator Chapters 7-8 Assembly

More information

Dart a modern web language

Dart a modern web language Dart a modern web language or why web programmers need more structure Kasper Lund & Lars Bak Software engineers, Google Inc. Object-oriented language experience: 26 + 12 years The Web Is Fantastic The

More information

Ź Ź ł ź Ź ś ź ł ź Ś ę ż ż ł ż ż Ż Ś ę Ż Ż ę ś ź ł Ź ł ł ż ż ź ż ż Ś ę ż ż Ź Ł Ż Ż Ą ż ż ę ź Ń Ź ś ł ź ż ł ś ź ź Ą ć ś ś Ź Ś ę ę ć ż Ź Ą Ń Ą ł ć ć ł ł ź ę Ś ę ś ę ł ś ć ź ś ł ś ł ł ł ł ć ć Ś ł ź Ś ł

More information

Google Apps Engine. G-Jacking AppEngine-based applications. Presented 30/05/2014. For HITB 2014 By Nicolas Collignon and Samir Megueddem

Google Apps Engine. G-Jacking AppEngine-based applications. Presented 30/05/2014. For HITB 2014 By Nicolas Collignon and Samir Megueddem Google Apps Engine G-Jacking AppEngine-based applications Presented 30/05/2014 For HITB 2014 By Nicolas Collignon and Samir Megueddem Introduction to GAE G-Jacking The code The infrastructure The sandbox

More information

DiskPulse DISK CHANGE MONITOR

DiskPulse DISK CHANGE MONITOR DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com [email protected] 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: 1.800.529.0165 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

Programming Languages CIS 443

Programming Languages CIS 443 Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception

More information

Business Enterprise Server Help Desk Integration Guide. Version 3.5

Business Enterprise Server Help Desk Integration Guide. Version 3.5 Business Enterprise Server Help Desk Integration Guide Version 3.5 June 30, 2010 Copyright Copyright 2003 2010 Interlink Software Services, Ltd., as an unpublished work. All rights reserved. Interlink

More information

This document presents the new features available in ngklast release 4.4 and KServer 4.2.

This document presents the new features available in ngklast release 4.4 and KServer 4.2. This document presents the new features available in ngklast release 4.4 and KServer 4.2. 1) KLAST search engine optimization ngklast comes with an updated release of the KLAST sequence comparison tool.

More information

THE NECESSITY OF ECONOMIC ANALYSIS A GAZDASÁGI ELEMZÉS SZÜKSÉGESSÉGE. ANDREA PAP captain

THE NECESSITY OF ECONOMIC ANALYSIS A GAZDASÁGI ELEMZÉS SZÜKSÉGESSÉGE. ANDREA PAP captain VÉDELEM GAZDASÁGTAN ANDREA PAP captain THE NECESSITY OF ECONOMIC ANALYSIS A GAZDASÁGI ELEMZÉS SZÜKSÉGESSÉGE Ezen témában már megjelent publikációimat mintegy keretbe foglalva a cikk összegzi a gazdasági

More information

SQL is capable in manipulating relational data SQL is not good for many other tasks

SQL is capable in manipulating relational data SQL is not good for many other tasks Embedded SQL SQL Is Not for All SQL is capable in manipulating relational data SQL is not good for many other tasks Control structures: loops, conditional branches, Advanced data structures: trees, arrays,

More information

Supporting Data Set Joins in BIRT

Supporting Data Set Joins in BIRT Supporting Data Set Joins in BIRT Design Specification Draft 1: Feb 13, 2006 Abstract This is the design specification of the BIRT Data Set Join feature. Document Revisions Version Date Description of

More information

PUBLICATIONS. 3, G. Bognár, Geometric aspects of some nonlinear differential equations, Nonlinear Analysis, 63 (2005), 399-405.

PUBLICATIONS. 3, G. Bognár, Geometric aspects of some nonlinear differential equations, Nonlinear Analysis, 63 (2005), 399-405. PUBLICATIONS A. Article in periodical 1, G. Bognár-J. Cepicka-P. Drábek-P. Necesal-E. Rozgonyi: Necessary and sufficient conditions for the existence of solution to the three-point BVP, Nonlinear Analysis,

More information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 7 Scanner Parser Project Wednesday, September 7 DUE: Wednesday, September 21 This

More information

SAP BusinessObjects Business Intelligence platform Document Version: 4.1 Support Package 5-2014-11-06. Information Design Tool User Guide

SAP BusinessObjects Business Intelligence platform Document Version: 4.1 Support Package 5-2014-11-06. Information Design Tool User Guide SAP BusinessObjects Business Intelligence platform Document Version: 4.1 Support Package 5-2014-11-06 Table of Contents 1 What's new in the....14 2 Getting started with the information design tool....18

More information

4. G. Jeney, Multi-user detektálás hibatűrésének vizsgálata, (in Hungarian), Magyar Távközlés, Vol. X, Issue 1, Jan. 1999, pp.

4. G. Jeney, Multi-user detektálás hibatűrésének vizsgálata, (in Hungarian), Magyar Távközlés, Vol. X, Issue 1, Jan. 1999, pp. University notes 1. S. Imre, F. Balázs, G. Jeney, Korszerű mobil vevőalgoritmusok, (in Hungarian) (for the lectures Up-to-date Mobile Detection Algorithms ) http://www.mcl.hu/wcdma/pubs/jegyzet.pdf, 87

More information

MongoDB Aggregation and Data Processing

MongoDB Aggregation and Data Processing MongoDB Aggregation and Data Processing Release 3.0.8 MongoDB, Inc. December 30, 2015 2 MongoDB, Inc. 2008-2015 This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 3.0

More information

MongoDB Aggregation and Data Processing Release 3.0.4

MongoDB Aggregation and Data Processing Release 3.0.4 MongoDB Aggregation and Data Processing Release 3.0.4 MongoDB Documentation Project July 08, 2015 Contents 1 Aggregation Introduction 3 1.1 Aggregation Modalities..........................................

More information

Sources: On the Web: Slides will be available on:

Sources: On the Web: Slides will be available on: C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,

More information

THE SYSTEMS OF INFORMATION AND COMMUNICATION TECHNOLOGY APPLYED BY THE GOVERNMENT

THE SYSTEMS OF INFORMATION AND COMMUNICATION TECHNOLOGY APPLYED BY THE GOVERNMENT VI. Évfolyam 2. szám - 2011. június Inkovics Ferenc [email protected] THE SYSTEMS OF INFORMATION AND COMMUNICATION TECHNOLOGY APPLYED BY THE GOVERNMENT Absztrakt Magyarország a többi EU-s tagállammal

More information

COS 333: Advanced Programming Techniques

COS 333: Advanced Programming Techniques COS 333: Advanced Programming Techniques How to find me bwk@cs, www.cs.princeton.edu/~bwk 311 CS Building 609-258-2089 (but email is always better) TA's: Stephen Beard, Chris Monsanto, Srinivas Narayana,

More information

SDMX technical standards Data validation and other major enhancements

SDMX technical standards Data validation and other major enhancements SDMX technical standards Data validation and other major enhancements Vincenzo Del Vecchio - Bank of Italy 1 Statistical Data and Metadata exchange Original scope: the exchange Statistical Institutions

More information

ETRI-TAM Subproject Development Plan. SangSik Yoon Taesang Choi

ETRI-TAM Subproject Development Plan. SangSik Yoon Taesang Choi ETRI-TAM Subproject Development Plan SangSik Yoon Taesang Choi ETRI-TAM Planning Overview Preparing and Setup Subproject (~June 30) Development Phase 1 (~Aug. 31) Adaptive(Effective) Flow Sampling Development

More information

Programming Language Pragmatics

Programming Language Pragmatics Programming Language Pragmatics THIRD EDITION Michael L. Scott Department of Computer Science University of Rochester ^ШШШШШ AMSTERDAM BOSTON HEIDELBERG LONDON, '-*i» ЩЛ< ^ ' m H NEW YORK «OXFORD «PARIS»SAN

More information

WSDL-DSL + WSToolKit

WSDL-DSL + WSToolKit WSDL-DSL + WSToolKit full automatization of Web Services testing Laura M. Castro University of A Coruña Jun 10, 2015 EUC (tutorial) 1 of 23 What is a web service? Nowadays, anything and everything claims

More information

Advanced Functional Programming (9) Domain Specific Embedded Languages

Advanced Functional Programming (9) Domain Specific Embedded Languages Advanced Functional Programming (9) Domain Specific Embedded Languages Advanced Functional Programming (9) Domain Specific Embedded Languages, Universiteit Utrecht http://www.cs.uu.nl/groups/st/ February

More information

NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013

NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013 NoSQL web apps w/ MongoDB, Node.js, AngularJS Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013 About us Passionate (web) dev. since fallen in love with Sinclair ZX Spectrum Academic background in natural

More information

URI and UUID. Identifying things on the Web.

URI and UUID. Identifying things on the Web. URI and UUID Identifying things on the Web. Overview > Uniform Resource Identifiers (URIs) > URIStreamOpener > Universally Unique Identifiers (UUIDs) Uniform Resource Identifiers > Uniform Resource Identifiers

More information

Chapter 1: Introduction. Database Management System (DBMS) University Database Example

Chapter 1: Introduction. Database Management System (DBMS) University Database Example This image cannot currently be displayed. Chapter 1: Introduction Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Database Management System (DBMS) DBMS contains information

More information

Scanner. tokens scanner parser IR. source code. errors

Scanner. tokens scanner parser IR. source code. errors Scanner source code tokens scanner parser IR errors maps characters into tokens the basic unit of syntax x = x + y; becomes = + ; character string value for a token is a lexeme

More information

Tutorial: Big Data Algorithms and Applications Under Hadoop KUNPENG ZHANG SIDDHARTHA BHATTACHARYYA

Tutorial: Big Data Algorithms and Applications Under Hadoop KUNPENG ZHANG SIDDHARTHA BHATTACHARYYA Tutorial: Big Data Algorithms and Applications Under Hadoop KUNPENG ZHANG SIDDHARTHA BHATTACHARYYA http://kzhang6.people.uic.edu/tutorial/amcis2014.html August 7, 2014 Schedule I. Introduction to big data

More information

IENG2004 Industrial Database and Systems Design. Microsoft Access I. What is Microsoft Access? Architecture of Microsoft Access

IENG2004 Industrial Database and Systems Design. Microsoft Access I. What is Microsoft Access? Architecture of Microsoft Access IENG2004 Industrial Database and Systems Design Microsoft Access I Defining databases (Chapters 1 and 2) Alison Balter Mastering Microsoft Access 2000 Development SAMS, 1999 What is Microsoft Access? Microsoft

More information

Efficient Big Data Analytics using SQL and Map-Reduce

Efficient Big Data Analytics using SQL and Map-Reduce Efficient Big Data Analytics using SQL and Map-Reduce Pekka Kostamaa, VP of Engineering and Big Data Lab ACM Fifteenth International Workshop On Data Warehousing and OLAP DOLAP 2012 Conference, Maui, Hawaii

More information

Programming Languages in Artificial Intelligence

Programming Languages in Artificial Intelligence Programming Languages in Artificial Intelligence Günter Neumann, German Research Center for Artificial Intelligence (LT Lab, DFKI) I. AI programming languages II. Functional programming III. Functional

More information

Logitoring : log driven monitroing. the Rocket science. and. Eugene Istomin. IT Architect. [email protected]. Cone Center,Tallinn

Logitoring : log driven monitroing. the Rocket science. and. Eugene Istomin. IT Architect. e.istomin@edss.ee. Cone Center,Tallinn Logitoring : log driven monitroing and the Rocket science Eugene Istomin IT Architect [email protected] Cone Center,Tallinn Topic goal: talking about a common way of delivering, storing and analyzing monitoring/log/trace

More information

Operating System Monitor Application (OS MON)

Operating System Monitor Application (OS MON) Operating System Monitor Application (OS MON) version 1.3 Joe Armstrong 1997-05-02 Typeset in L A TEX from SGML source using the DOCBUILDER 3.0 Document System. Contents 1 OS MON Reference Manual 1 1.1

More information

Lecture 22 The Shell and Shell Scripting

Lecture 22 The Shell and Shell Scripting Lecture 22 The Shell and Shell Scripting In this lecture The UNIX shell Simple Shell Scripts Shell variables File System s, IO s, IO redirection Command Line Arguments Evaluating Expr in Shell Predicates,

More information

Hadoop: The Definitive Guide

Hadoop: The Definitive Guide FOURTH EDITION Hadoop: The Definitive Guide Tom White Beijing Cambridge Famham Koln Sebastopol Tokyo O'REILLY Table of Contents Foreword Preface xvii xix Part I. Hadoop Fundamentals 1. Meet Hadoop 3 Data!

More information

Prolog A Tutorial Introduction James Lu Jerud J. Mead

Prolog A Tutorial Introduction James Lu Jerud J. Mead Prolog A Tutorial Introduction James Lu Jerud J. Mead Computer Science Department Bucknell University Lewisburg, PA 17387 1 Contents 1 Introduction 1 2 Easing into Prolog 2 2.1 Logic Programming.........................................

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction Database System Concepts, 5th Ed. See www.db book.com for conditions on re use Chapter 1: Introduction Purpose of Database Systems View of Data Database Languages Relational Databases

More information

Simple Network Management Protocol (SNMP) version 3.4

Simple Network Management Protocol (SNMP) version 3.4 Simple Network Management Protocol (SNMP) version 3.4 Typeset in L A TEX from SGML source using the DOCBUILDER 3.3.2 Document System. Contents 1 SNMP User's Guide 1 1.1 SNMP Introduction......................................

More information