27 research outputs found

    Building Program Vector Representations for Deep Learning

    Full text link
    Deep learning has made significant breakthroughs in various fields of artificial intelligence. Advantages of deep learning include the ability to capture highly complicated features, weak involvement of human engineering, etc. However, it is still virtually impossible to use deep learning to analyze programs since deep architectures cannot be trained effectively with pure back propagation. In this pioneering paper, we propose the "coding criterion" to build program vector representations, which are the premise of deep learning for program analysis. Our representation learning approach directly makes deep learning a reality in this new field. We evaluate the learned vector representations both qualitatively and quantitatively. We conclude, based on the experiments, the coding criterion is successful in building program representations. To evaluate whether deep learning is beneficial for program analysis, we feed the representations to deep neural networks, and achieve higher accuracy in the program classification task than "shallow" methods, such as logistic regression and the support vector machine. This result confirms the feasibility of deep learning to analyze programs. It also gives primary evidence of its success in this new field. We believe deep learning will become an outstanding technique for program analysis in the near future.Comment: This paper was submitted to ICSE'1

    DEEPCODE phase 1: Defining optimised compiled language for Code-set Summarization

    Get PDF
    Description of the project by arriving to Lund UniversityAún viviendo en la era de la globalización, podemos percibir cierto aislamiento y rivalidad entre equipos de desarrollo de software que comparten objetivos. Para un estudio genérico, un común denominador puede ser detectado: todos intentan filtrar las mejores ideas del campo en cuestión i aplicarle nuevas mejoras que hagan de su implementación la mejor del mercado en un seguido de aspectos «tangibles» (i.e. rendimiento, eficiéncia). No obstante, DeepCode propone una cooperación entre rivales para lograr resultados más trascendentes. DeepCode es una herramienta que, procesando un data-set compuesto por códigos fuente que ejecutan cierta tarea A, aprende como implementar dicha tarea A y consigue resultados superiores a cualquier individuo en el data-set. Dada la complejidad y naturaleza de DeepCode, dos fases son definidas: Phase 2, que, con capas de inteligéncia artificial, aprende que ideas en el data-set conllevan buenos resultados; y Phase 1, que estudia i monta una representación original del código fuente con el objetivo de proveer a la Phase 2 un data-set procesable y óptimo.Yet being immersed in the globalisation era, we can still perceive isolation and rivalry between software developing teams that share ambitions. Regardless of the nature of the research, a common denominator can be spotted: they all try to get the best existing ideas on the field and apply some new improvement/s that makes their own implementation the best in a specific set of “tangible” aspects (i.e. performance, efficiency). Nonetheless, DeepCode proposes a cooperation between parties in order to achieve greater results. DeepCode is a tool that, by processing a data-set formed by source codes representations performing a generic task A, learns how to implement task A and outperform every individual from studied data-set. Given the complexity of DeepCode, two stages are defined: Phase 2, that, with artificial intelligence techniques, learns which ideas in the data-set imply good code performance and Phase 1, which studies and builds customised code representation in order to provide phase 2 an optimised and workable data-set.Tot i viure en l’era de la globalització, encara podem percebre cert aïllament i rivalitat entre equips de desenvolupament de software què comparteixen objectius. Per a una reserca genèrica, un comú denominador pot ser detectat: tots intenten filtrar les millors idees del camp en qüestió i aplicar-ne noves millores què fagin de la seva implementació la millor del mercat en un seguit d’aspectes «tangibles» (i.e. rendiment, eficiència). No obstant, DeepCode proposa una cooperació entre rivals per aconseguir resultats més trascendents. DeepCode és una eina què, processant un data-set format per codis fonts què executen certa tasca A, aprèn com implementar esmentada tasca A i aconseguir resultats superiors a qualsevol individu en el data-set. Donada la complexitat i natura de DeepCode, dugues fases són definides: Phase 2, què, amb capes d’AI, aprèn quines idees en el data-set comporten bons resultats; i Phase 1, què estudia i munta una representació original del codi font amb l’objectiu de proveïr la Phase 2 un data-set procesable i òptim
    corecore