4 research outputs found

    (CLSCR) Cross Language Source Code Reuse Detection using Intermediate Language

    Get PDF
    ABSTRACT In today's digital era information access is just a click away. so computer science students also have easy access to all the source codes from different websites thus it has become difficult for academicians to detect source code reuse in students programming assignments. The new trend in the area of source code reuse is using the source code by translating it in another programming language popularly known as cross language plagiarism. Our CLSCR addresses this problem. CLSCR mainly has two components: A compiler that compiles and translates the language specific source code into a tool specific internal format and The Similarity calculator that computes similarity between internal formats of different programs

    PAN@FIRE: Overview of CL-SOCO Track on the Detection of Cross-Language SOurce COde Re-use

    Get PDF
    ABSTRACT The detection of source code re-use is an important research field for both software industry and academia fields. This paper summarizes the goals, organization and results of the second SOCO competitive evaluation campaign for systems that automatically detect the source code re-use phenomenon. PAN@FIRE shared task, named Cross-Language SOurce COde Re-use (CL-SOCO), focused on the detection of crosslingual re-used source codes in C and Java programming languages. Participant systems were asked to annotate several source codes as whether or not they represent cases of cross-lingual source code re-use. In total five teams participated and submitted 12 runs. The training and test collections were generated using an automatic translation tool establishing a standard evaluation framework for future research works in cross-language source code re-use detection. Although the results obtained by the participants look promising, the problem requires more efforts to be accurately solved

    Detecting Source Code Plagiarism on .NET Programming Languages using Low-level Representation and Adaptive Local Alignment

    Get PDF
    Even though there are various source code plagiarism detection approaches, only a few works which are focused on low-level representation for deducting similarity. Most of them are only focused on lexical token sequence extracted from source code. In our point of view, low-level representation is more beneficial than lexical token since its form is more compact than the source code itself. It only considers semantic-preserving instructions and ignores many source code delimiter tokens. This paper proposes a source code plagiarism detection which rely on low-level representation. For a case study, we focus our work on .NET programming languages with Common Intermediate Language as its low-level representation. In addition, we also incorporate Adaptive Local Alignment for detecting similarity. According to Lim et al, this algorithm outperforms code similarity state-of-the-art algorithm (i.e. Greedy String Tiling) in term of effectiveness. According to our evaluation which involves various plagiarism attacks, our approach is more effective and efficient when compared with standard lexical-token approach

    Detección de reutilización de código fuente monolingüe y translingüe

    Full text link
    [EN] Automatic detection of source code re-use consists in determining whether a (piece of) code has been created considering another source.Plagiarism and forks in software projects are two examples of types of re-use in source codes. With the advent of the Web and electronic media it has grown enormously the ease of access to source code to be read, copied or modified. This represents a great temptation for developers with the aim of reducing (time or economic) costs, decide to use previously debugged and tested source codes. This phenomenon has caused experts in programming languages to study the problem. The large amount of resources available on the Web makes impossible a manual analysis of suspect source codes of being re-used. Therefore, there is an urgent need to develop automated tools that can accurately detect re-used cases. Automatic re-use detection tools based on natural language processing techniques and information retrieval are able to perform many comparisons of source codes efficiently. In this thesis we propose a set of models that are suitable at both monolingual or crosslingual level. That is, two source codes written in the same, or different, programming language can be compared. Therefore, it allows us to make comparisons between almost any pair of programming languages unlike the proposals of the state of the art. First, we studied the most common changes made by programmers to avoid the detection. To address these changes and improve the detection, we have proposed a set of pre-processing. The models have been evaluated and analysed in real academic settings as well as large-scale scenarios. Finally, our best proposals were compared with some of the state of the art proposals within the same evaluation framework. These tests of our models were performed millions of monolingual and crosslingual comparisons using several techniques that were effective when applied to detection re-use in texts written in natural language. Most of the resources developed in the framework of this thesis are freely available to the scientific community. Using part of these resources, we have set up two evaluation scenarios (monolingual and crosslingual) that are a reference for current and future research works can adjust and compare their proposals.[ES] La detección automática de reutilización en códigos fuente consiste en determinar si un (fragmento de) código ha sido creado considerando otro como fuente. El plagio y las ramificaciones en proyectos software son dos ejemplos de tipos de reutilización en códigos fuente. Con la llegada de la Web y los medios electrónicos ha crecido enormemente la facilidad de acceso a códigos fuente para ser leídos, copiados o modificados. Esto supone una gran tentación para programadores que, con propósitos de reducir costes (temporales o económicos), deciden utilizar códigos fuente previamente depurados y probados. Este fenómeno ha causado que expertos en lenguajes de programación estudien el problema. La gran cantidad de recursos disponibles en la Web hace imposible un análisis manual de códigos fuente sospechosos de haber sido reutilizados. Por ello, existe una necesidad urgente de desarrollar herramientas automáticas capaces de detectar con precisión los casos de reutilización. Basándose en técnicas del procesamiento del lenguaje natural y recuperación de información, las herramientas de detección automáticas de reutilización son capaces de realizar multitud de comparaciones de códigos fuente de forma eficiente. En esta tesis proponemos un conjunto de modelos que pueden aplicarse indistintamente a nivel monolingüe o translingüe. Es decir, se pueden comparar dos códigos que están escritos en el mismo, o en distinto, lenguaje de programación. Por lo tanto, nos permite realizar comparaciones entre casi cualquier par de lenguajes de programación a diferencia de las propuestas del estado de la cuestión. %que solo se aplican a un grupo muy reducido de lenguajes de programación. Inicialmente, hemos estudiado las modificaciones más comunes realizadas por los programadores para evitar ser detectados. Para tratar estas modificaciones y mejorar la detección, hemos propuesto una serie de preprocesos. Se han evaluado y analizado los modelos tanto en un escenario académico real como en un escenario de detección a gran escala. Finalmente, nuestras mejores propuestas se han comparado con otras propuestas del estado de la cuestión dentro de un mismo marco de evaluación. Estas pruebas de nuestros modelos se han realizado mediante millones de comparaciones tanto a nivel monolingüe como translingüe empleando diversas técnicas que fueron efectivas al aplicarlas sobre textos escritos en lenguaje natural. La mayor parte de los recursos desarrollados en el marco de esta tesis están a libre disposición de la comunidad científica. Utilizando parte de estos recursos, hemos configurado dos escenarios (monolingües y translingües) de evaluación que son un referente para que actuales y futuros trabajos de investigación puedan ajustar y comparar sus propuestas.[CA] La detecció automàtica de reutilització en codis consisteix a determinar si un (fragment de) codi ha sigut creat considerant un altre com a font. El plagi i les bifurcacions en projectes de programari són dos exemples de tipus de reutilització en codis font. Amb l'arribada de la Web i els mitjans electrònics ha crescut enormement la facilitat d'accés a codis font per a ser llegits, copiats o modificats. Açò suposa una gran temptació per a programadors que amb propòsits de reduir costos (temporals o econòmics) decideixen utilitzar codis font prèviament depurats i provats. Aquest fenomen ha causat que experts en llenguatges de programació estudien aquest problema. La gran quantitat de recursos en la Web fa impossible una anàlisi manual de codis font sospitosos d'haver sigut reutilitzats. Es per aquest motiu que existeix una necessitat urgent de desenvolupar eines automàtiques capaces de detectar amb precisió els casos de reutilització. Basant-se en tecnologies de teoria de llenguatges i recuperació d'informació, les eines de detecció automàtiques de reutilització són capaces de realitzar multitud de comparacions de codis font de forma eficient. En aquesta tesi proposem un conjunt de models que poden aplicar-se indistintament a nivell monolingüe o translingüe. És a dir, es poden comparar dos codis que estan escrits en el mateix, o diferent, llenguatge de programació. Per tant, ens permet realitzar comparacions entre quasi qualsevol parell de llenguatges de programació a diferència de les propostes de l'estat de la qüestió. La nostra experimentació ha seguit un cert paral\cdotlelisme entre la detecció de reutilització monolingüe i la translingüe. Inicialment, hem estudiat les modificacions més comunes realitzades pels programadors per evitar ser detectats. Per tractar aquestes modificacions i millorar la detecció, hem proposat una sèrie de preprocesos. S'han avaluat i analitzat els models tant en un escenari acadèmic real com en un escenari de detecció a gran escala. Finalment, hem comparat les nostres millors propostes amb altres propostes de l'estat de la qüestió dins d'un mateix marc d'avaluació. Aquestes proves i comparacions dels nostres models s'han realitzat mitjançant milions de comparacions tant a nivell monolingüe com translingüe emprant diverses tècniques que van ser efectives en aplicar-se sobre textos escrits en lenguatge natural. La major part dels recursos creats en el marc d'aquesta tesi han estat de creació pròpia i estan a lliure disposició de la comunitat científica. Utilitzant part d'aquests recursos, hem proposat dos escenaris (monolingüe i translingüe) d'avaluació que són un referent perquè actuals i futurs treballs d'investigació puguin ajustar i comparar les seves propostes.Flores Sáez, E. (2016). Detección de reutilización de código fuente monolingüe y translingüe [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/66868TESI
    corecore