2 research outputs found

    The PAPAGENO Parallel-Parser Generator

    Get PDF
    The increasing use of multicore processors has deeply transformed computing paradigms and applications. The wide availability of multicore systems had an impact also in the field of compiler technology, although the research on deterministic parsing did not prove to be effective in exploiting the architectural advantages, the main impediment being the inherent sequential nature of traditional LL and LR algorithms. We present PAPAGENO, an automated parser generator relying on operator precedence grammars. We complemented the PAPAGENO-generated parallel parsers with parallel lexing techniques, obtaining near-linear speedups on multicore machines, and the same speed as Bison parsers on sequential execution

    A Data Parallel Approach to XML Parsing and Query

    No full text
    目前在使用數據平行方法來改善可擴展標記語言(XML)之語法分析上遇到了一個很大的問題,就是在分割文件上。現今的辦法都需要一個預先處理器來對文件做一個初步了解,才能解決這個問題。本文提出了不需使用預先處理的直接平行方法來解決這個問題。在直接平行方法中我們藉由找尋燈塔來開始語法分析,而所謂燈塔指的是一種只有少數例外的特定字元。接著我們在語法分析中藉由找尋線索以及在某些情況下重新解析必要的區間來處理例外狀況。接著我們提出了非同步之分割器來改善查詢可擴展標記語言之路徑語言的速度。在非同步之分割器中我們在不需要各個線程溝通的情況下查詢,並且藉由一種名稱為先代表格的資料結構來幫助各個線程獨立運作,讓我們可以把查詢路徑語言的工作分散到各個線程中。實驗數據顯示出我們提出的這兩個方法不論是用在空間小的文件或是空間大的文件上,都可以有效的利用多核心架構的資源。Data-parallel XML parsing has a crucial problem in partitioning XML documents. Existing approaches need a pre-parse step to determine the partitions. In this paper, we propose a direct parallel method to solve this problem without pre-parsing. In the direct parallel method, we directly start the parallel parsing by finding the “light tower”, which is a particular character with some exceptions, called clues. We handle the exceptions by watching the clues and reparsing the partition if it is required in the parsing stage. We also propose a non-synchronized splitter approach to the parallel XML querying using XPath expressions. In the non-synchronized splitter approach, we split an XPath expression into pieces to be executed by threads and we use a data structure, called the ancestor table, to help each thread handle its part of XPath expression independently without communications between threads. Our experiments show that our approach scales well from small sized files to huge sized files
    corecore