[PDF] Java PathFinder General usage pattern. Pavel Parí





Previous PDF Next PDF



PATHFINDER DIGITAL PRODUCT CATALOG_2021-01-01.xlsx

1 janv. 2021 PATHFINDER DIGITAL PRODUCT CATALOG. Effective January 1 2021. Part Number. Description. List Price. 400001. BAT-1214. $87



Guide des arbres de dons pour Pathfinder

Frappe du bouclier. Shield Slam. Combat à deux armes. BBA +6. Accompagner les coups de bouclier d'une bousculade ne provoquant pas d'attaque.



Les Traits de Personnages

(Aussi dans le Guide du Joueur de Dalvyn le Recueil des Traits de Buckaroo & Mériadec ainsi que sur le wiki Pathfinder-fr).



Codes employés Format des dons Table des matières

Guide des arbres de dons pour Pathfinder. Codes employés. Don de combat. Don de magie. Don divers. G — Don de guerrier. M — Don de métamagie.



Formal Methods for Java - Lecture 8: Java Pathfinder

16 nov. 2012 What We Got http://babelfish.arc.nasa.gov/trac/jpf/wiki. Jochen Hoenicke (Software Engineering). FM4J. Nov 16 2012. 6 / 21. Page 7. VM Inside a ...



LES DIEUx DE GOLARION

Sources : Campaign Setting Pathfinder Chronicles: Gods and Magic



un feuillet pour

14 mars 2010 campagnes Pathfinder. par Dalvyn (dalvyn@gmail.com) avec l'aide de nombreux fans de www.pathfinder-fr.org. Guide du joueur des campagnes.



Java PathFinder

General usage pattern. Pavel Parízek. Java Pathfinder. 4. Picture taken from JPF wiki (https://github.com/javapathfinder/jpf-core/wiki) 



Pathfinder-FR - Bonus et cumuls

es bonus de même type ne se cumulent pas sauf les bonus d'esquive



UN FEUILLET POUR

21 janv. 2010 Pathfinder et incluant divers tableaux et informations utiles lors de la création d'un personnage. par Dalvyn (dalvyn@gmail.com).



Feuilles de personnages - Wikis Pathfinder-fr

rôdeurs alchimistes antipaladins conjurateurs inquisiteurs magus oracles sorcières Format : fichiers PDF (certains dans une archive ZIP)



Bienvenue sur le Wiki Pathfinder-JdR

Pathfinder JDR est un système de règles pour le jeu de rôle compatible avec l'édition 3 5 du jeu de rôle le plus connu au monde



Pathfinder le jeu de rôle - Wikipédia

_le_jeu_de_r%25C3%25B4le.pdf



Zeitgeist Player Primer (Pathfinder PDF Version) Wiki

This 2-page Player Primer is designed as a handout for your players and briefly introduces the setting in which the adventure path takes place This is the 



PathfinderWiki

2 avr 2023 · The Pathfinder canon encyclopedia anyone can edit 19041 articles since 2008 Accessories · Adventures · Card Game · Comics · Community 



File:Alerta rojapdf - Pathfinder Wiki - Club Ministries

File:Alerta roja pdf From Pathfinder Wiki Jump to:navigation search File usage There are no pages that use this file





Pathfinder JdR - Black Book Editions

Découvrez la gamme de jeu de rôle qui a bouleversé le paysage ludique ! Résultat de 10 années de développement et du plus gros playtest jamais effectué 



IDM - Case Study Pathfinder and Pilot i1pdf

No preview is available for IDM - Case Study Pathfinder and Pilot i1 pdf because its size exceeds 1 0 MB To view it click the "Download" tab above



Artisans - Pathfinder: Kingmaker Wiki PDF - Scribd

Artisans - Pathfinder: Kingmaker Wiki https://pathfinderkingmaker gamepedia com/Artisans Leatherworker Tier Unlock Actions Shady Dealer Tier Unlock Actions

:

CHARLES UNIVERSITY IN PRAGUE

http://d3s.mff.cuni.cz faculty of mathematics and physics Java

PathFinder

PavelParízek

Java

PathFinder

(JPF)

Pavel ParízekJava Pathfinder2

Verification framework for Java programs

Explicit state space traversal (with POR)

Highly customizable and extensible (API)

Open source since April 2005

Maintainers: NASA Ames Research Center

Available on GitHub since 2018

WWW : https://github.com/javapathfinder/jpf-core

What JPF really is ...

Pavel ParízekJava Pathfinder3

Special JVM

Execution choices

Backtracking

State matching

State space exploration

assertions, deadlocks, races, ...

General usage pattern

Pavel ParízekJava Pathfinder4

Picture taken from JPF wiki (https://github.com/javapathfinder/jpf-core/wiki)

Architecture

Pavel ParízekJava Pathfinder5

Picture taken from JPF wiki (https://github.com/javapathfinder/jpf-core/wiki)

Program state space in JPF

Pavel ParízekJava Pathfinder6

States

Full snapshot of JVM

Dynamic heap

Thread stacks

Program counters

Static data (classes)

Locks and monitors

Program state space in JPF

Pavel ParízekJava Pathfinder7

Transitions

Non -empty sequences of bytecodeinstructions

Terminates when JPF makes a new choice

Program state space in JPF

Pavel ParízekJava Pathfinder8

Choices

Thread scheduling

Data (

boolean, int) On the fly state space construction

Pavel ParízekJava Pathfinder9

public Producer extends Thread { void run() { while (true) { d.buf= i; i++; d.count++; public Consumer extends Thread { void run() { while (true) { k = d.buf; print(k); public static void main(...) {

Data d = new Data();

new Producer(d).start(); new Consumer(d).start();

P: buf= i

P: i++

C: k = buf

C: print(k)

P C On the fly state space construction

Pavel ParízekJava Pathfinder10

public Producer extends Thread { void run() { while (true) { d.buf= i; i++; d.count++; public Consumer extends Thread { void run() { while (true) { k = d.buf; print(k); public static void main(...) {

Data d = new Data();

new Producer(d).start(); new Consumer(d).start();

P: buf= i

P: i++

C: k = buf

C: print(k)

P: count ++

C: k = buf

C: print(k)

On the fly state space construction

Pavel ParízekJava Pathfinder11

public Producer extends Thread { void run() { while (true) { d.buf= i; i++; d.count++; public Consumer extends Thread { void run() { while (true) { k = d.buf; print(k); public static void main(...) {

Data d = new Data();

new Producer(d).start(); new Consumer(d).start();

P: buf= i

P: i++

C: k = buf

C: print(k)

P: count ++

C: k = buf

C: print(k)

P: buf= i

P: i++

C: k =buf

C: print(k)P: buf= i

P: i++

Properties

Pavel ParízekJava Pathfinder12

Built -in

Deadlock freedom

Race conditions

Uncaught exceptions

Assertions

Features

Pavel ParízekJava Pathfinder13

Partial order reduction

Class loading symmetry

Heap symmetry

Selected heuristics

Running JPF

Pavel ParízekJava Pathfinder14

Running JPF

Pavel ParízekJava Pathfinder15

Download JPF and unpack somewhere

_verification/files/JPF.zip

Example: Dining Philosophers

Command:

java -jar build\RunJPF.jar src\examples\DiningPhil.jpf

Output: application, error info, statistics

Error info

Pavel ParízekJava Pathfinder16

Full error trace (counterexample)

Snapshot of the error state

Message from the property checker

Command:

java -jar build\RunJPF.jar +report.console.property_violation =trace,error,snapshot src\examples\DiningPhil.jpf

Running JPF

Pavel ParízekJava Pathfinder17

Examples

BoundedBuffer

Crossing

oldclassic Racer

JPF API

Pavel ParízekJava Pathfinder18

JPF API

Pavel ParízekJava Pathfinder19

Listeners

Inspecting current program state

Custom properties

Search driver

Advanced

Instruction factory (bytecode interpreter)

Scheduler (sync policy,

sharednesspolicy)

Listeners

Pavel ParízekJava Pathfinder20

Observer design pattern

Notified about specific events

JVM: bytecodeinstruction executed, new heap object allocated, start of a new thread State space traversal: new state, backtrack, finish

Inspecting current program state

heap objects, local variables, thread call stacks, ...

Listeners

Pavel ParízekJava Pathfinder21

SearchListener

VMListener

ListenerAdapter

Examples (source code)

JPF/ src/main/gov/nasa/jpf/listener

Custom properties

Pavel ParízekJava Pathfinder22

Property

GenericProperty

PropertyListenerAdapter

Common practice: decide property status based

on listener notifications (and program state)

Examples (source code)

JPF/ src/main/gov/nasa/jpf/vm

Registering listeners and properties

Pavel ParízekJava Pathfinder23

listener=,..., search.listener=... search.properties=...

Listeners: tracking

bytecode instructions

Pavel ParízekJava Pathfinder24

ExecTracker

ObjectTracker

Listeners: inspecting program state

Pavel ParízekJava Pathfinder25

CallMonitor

ObjectTracker

Task 1

Pavel ParízekJava Pathfinder26

Write your own listener

After every field write instruction, print the field name and new value Before every method call (invoke), print values of all parameters supplied by the caller

Use existing classes as a basic template

ListenerAdapter

, VMListener, CallMonitor, ObjectTracker src /main/gov/nasa/jpf/listener/* src /main/gov/nasa/jpf/jvm/bytecode/*

Ask questions !!

Configuration properties

Pavel ParízekJava Pathfinder27

File jpf.properties

JPF wiki

Pavel ParízekJava Pathfinder28

Main page

https

User guide

https://

Internals (developer guide)

https://

JPF source code tree

Pavel ParízekJava Pathfinder29

src /main/gov/nasa/jpf the ͞main" class (JPF), interfaces vm : virtual machine, choices, built-in properties jvm : Java bytecodespecific, instructions, class file search : search driver, heuristics util : custom data structures, utility classes report : reporting system (console, XML) listener : various listeners

JPF and native methods

Pavel ParízekJava Pathfinder30

JPF and native methods

Pavel ParízekJava Pathfinder31

Support for all Java

bytecodeinstructions but some library methods are native file I/O, GUI, networking, ...

Problem

JPF cannot determine how execution of a native

method changes the program state

Solution:

Model-Java Interface (MJI)

Model

Java Interface (MJI)

Pavel ParízekJava Pathfinder32

Executing native methods in the underlying JVM

Similar mechanism to Java

-Native Interface (JNI)

Custom versions of some Java library classes

Object, Thread, Class,

java.util.concurrent.*, ...

Environment construction

Pavel ParízekJava Pathfinder33

Environment construction

Pavel ParízekJava Pathfinder34

Why͗ some programs do not contain ͞

main" libraries, components, plug -ins

Problem:

JPF accepts only complete programs

Solution:

create artificial environment

Program with multiple threads and data choices

Also called ͞test driǀer"

Example

Pavel ParízekJava Pathfinder35

Program:

java.util.HashMap public class PutTh extends Thread {

Map m;

public void run() { m.put("1", "abc"); m.put("2", "def"); public class GetTh extends Thread {

Map m;

public void run() { m.get("1"); m.get("0"); public static void main(...) {

Map m = new HashMap();

Thread th1 = new PutTh(m);

Thread th2 = new GetTh(m);

th1.start(); th2.start(); th1.join(); th2.join();

Environment construction

challenges

Pavel ParízekJava Pathfinder36

Coverage

Should trigger all (most) execution paths, thread

interleavings, and error states

Approach

Different method call sequences

Many combinations of parameter values

Several concurrent threads

State explosion

Use the least possible number of concurrent threads (2) Reasonable number of parameter values (domain size)

Using the

Verify

class

Pavel ParízekJava Pathfinder37

JPF -aware test drivers (environments)

Checking program behavior for different inputs

Data choice

import gov.nasa.jpf.vm.Verify if (Verify.getBoolean()) intx = Verify.getInt(0,10)

Search pruning

Verify.ignoreIf(cond)

Task 2

Pavel ParízekJava Pathfinder38

Write reasonable environment for

java.util.LinkedList java.util.concurrent.Semaphore

Run JPF on the complete program

Enable search for data race conditions

Use:

Try different workloads (threads, input data)

Time for questions about JPF

Pavel ParízekJava Pathfinder39

Architecture

Implementation

How something works

Public API

Output

Play with JPF

look into source code & try examples

Explore wiki

https

Ask questions

quotesdbs_dbs45.pdfusesText_45
[PDF] séparation d'avec quelqu'un

[PDF] d'avec synonyme

[PDF] séparation d'avec ou avec

[PDF] divorce d'avec

[PDF] séparation amoureuse

[PDF] la séparation film

[PDF] séparation comment faire

[PDF] separation couple

[PDF] separation difficile

[PDF] séparation église état france

[PDF] examen algorithme 1ere année

[PDF] introduction générale sur l informatique

[PDF] informatique s4 smp pdf

[PDF] qcm langage c corrigé pdf

[PDF] informatique s4 pdf