You are required to read and agree to the below before accessing a full-text version of an article in the IDE article repository.

The full-text document you are about to access is subject to national and international copyright laws. In most cases (but not necessarily all) the consequence is that personal use is allowed given that the copyright owner is duly acknowledged and respected. All other use (typically) require an explicit permission (often in writing) by the copyright owner.

For the reports in this repository we specifically note that

  • the use of articles under IEEE copyright is governed by the IEEE copyright policy (available at
  • the use of articles under ACM copyright is governed by the ACM copyright policy (available at
  • technical reports and other articles issued by M‰lardalen University is free for personal use. For other use, the explicit consent of the authors is required
  • in other cases, please contact the copyright owner for detailed information

By accepting I agree to acknowledge and respect the rights of the copyright owner of the document I am about to access.

If you are in doubt, feel free to contact

Operational Semantics for PLEX: A Basis for Safe Parallelization



Fulltext available in <A href="">DiVA Portal</A>

Research group:

Publication Type:

Licentiate Thesis


Mälardalen University Press


The emerge of multi-core computers implies a major challenge for existing software. Due to simpler cores, the applications will face decreased performance if not executed in parallel. The problem is that much of the software is sequential.Central parts of the AXE telephone exchange system from Ericsson is programmed in the language PLEX. The current software is executed on a single-processor architecture, and assumes non-preemptive execution.This thesis presents two versions of an operational semantics for PLEX; one that models execution on the current, single-processor, architecture, and one that models execution on an assumed shared-memory architecture. A formal semantics of the language is a necessity for ensuring correctness of program analysis, and program transformations.We also report on a case study of the potential memory conflicts that may arise when the existing code is allowed to be executed in parallel. We show that simple static methods are sufficient to resolve many of the potential conflicts, thereby reducing the amount of manual work that probably still needs to be performed in order to adapt the code for parallel processing.


author = {Johan Lindhult},
title = {Operational Semantics for PLEX: A Basis for Safe Parallelization},
note = {Fulltext available in \textlessA href={"}{"}\textgreaterDiVA Portal\textless/A\textgreater},
number = {978-91-85485-80-2},
month = {May},
year = {2008},
publisher = {M{\"a}lardalen University Press},
url = {}