Source code modification technology based on parameterized code patterns

Source code modification is one of the most frequent operations which developers perform in software life cycle. Such operation can be performed in order to add new functionality, fix bugs or bad code style, optimize performance, increase readability, etc. During the modification of existing source...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:2010 6th Central and Eastern European Software Engineering Conference s. 207 - 213
Hlavní autoři: Itsykson, V, Timofeyev, D
Médium: Konferenční příspěvek
Jazyk:angličtina
Vydáno: IEEE 01.10.2010
Témata:
ISBN:9781457706059, 1457706059
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Abstract Source code modification is one of the most frequent operations which developers perform in software life cycle. Such operation can be performed in order to add new functionality, fix bugs or bad code style, optimize performance, increase readability, etc. During the modification of existing source code developer needs to find parts of code, which meet to some conditions, and change it according to some rules. Usually developers perform such operations repeatedly by hand using primitive search/replace mechanisms and "copy and paste programming", and that is why manual modification of large-scale software systems is a very error-prone and time-consuming process. Automating source code modifications is one of the possible ways of coping with this problem because it can considerably decrease both the amount of errors and the time needed in the modification process. Automated source code modification technique based on parameterized source code patterns is considered in this article. Intuitive modification description that does not require any knowledge of complex transformation description languages is the main advantage of our technique. We achieve this feature by using a special source code pattern description language which is closely tied with the programming language we're modifying. This allows developers to express the modification at hand as simple "before "/"after" source code patterns very similar to source code. Regexp-like elements are added to the language to increase its expressionalpower. The source code modification is carried out using difference abstract syntax trees. We build a set of transformation operations based on "before"/"after" patterns (using algorithm for change detection in hierarchically structured information) and apply them to those parts of source code that match with the search "before " pattern. After abstract syntax tree transformation is completed we pretty-print them back to source code. A prototype of source code modification system based on this technique has been implemented for the Java programming language. Experimental results show that this technique in some cases can increase the speed of source code modifications by several orders of magnitude, at the same time completely avoiding "copy-and paste " errors. In future we are planning to integrate prototype with existing development environments such as Eclipse and NetBeans.
AbstractList Source code modification is one of the most frequent operations which developers perform in software life cycle. Such operation can be performed in order to add new functionality, fix bugs or bad code style, optimize performance, increase readability, etc. During the modification of existing source code developer needs to find parts of code, which meet to some conditions, and change it according to some rules. Usually developers perform such operations repeatedly by hand using primitive search/replace mechanisms and "copy and paste programming", and that is why manual modification of large-scale software systems is a very error-prone and time-consuming process. Automating source code modifications is one of the possible ways of coping with this problem because it can considerably decrease both the amount of errors and the time needed in the modification process. Automated source code modification technique based on parameterized source code patterns is considered in this article. Intuitive modification description that does not require any knowledge of complex transformation description languages is the main advantage of our technique. We achieve this feature by using a special source code pattern description language which is closely tied with the programming language we're modifying. This allows developers to express the modification at hand as simple "before "/"after" source code patterns very similar to source code. Regexp-like elements are added to the language to increase its expressionalpower. The source code modification is carried out using difference abstract syntax trees. We build a set of transformation operations based on "before"/"after" patterns (using algorithm for change detection in hierarchically structured information) and apply them to those parts of source code that match with the search "before " pattern. After abstract syntax tree transformation is completed we pretty-print them back to source code. A prototype of source code modification system based on this technique has been implemented for the Java programming language. Experimental results show that this technique in some cases can increase the speed of source code modifications by several orders of magnitude, at the same time completely avoiding "copy-and paste " errors. In future we are planning to integrate prototype with existing development environments such as Eclipse and NetBeans.
Author Timofeyev, D
Itsykson, V
Author_xml – sequence: 1
  givenname: V
  surname: Itsykson
  fullname: Itsykson, V
  email: vlad@ftk.spbstu.ru
  organization: St.-Petersburg State Polytech. Univ., St. Petersburg, Russia
– sequence: 2
  givenname: D
  surname: Timofeyev
  fullname: Timofeyev, D
  email: timofeevda@gmail.com
  organization: St.-Petersburg State Polytech. Univ., St. Petersburg, Russia
BookMark eNp9jksOgjAYhGvUxBcnMCa9gNjyKqwJhrW4JxV-tAZa0uICT29j2LhxNpP5JpPMBi2kkoDQgRKXUpKc0iw7Fll6cT1iUchinzI2Q07CYhqEjJGIBN78J4fJCjnGPIlVFCUxY2uUF-qlK8CVqgF3qhaNqPgglMQDVA-pWnUf8Y0bqLFlPde8gwG0eFvw3fR8sFmaHVo2vDXgTL5F-3N2TfOjAICy16Ljeiynn_7_9gNqekKs
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1109/CEE-SECR.2010.5783177
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Xplore POP ALL
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
EISBN 9781457706042
9781457706066
1457706040
1457706067
EndPage 213
ExternalDocumentID 5783177
Genre orig-research
GroupedDBID 6IE
6IF
6IK
6IL
6IN
AAJGR
AAWTH
ADFMO
ALMA_UNASSIGNED_HOLDINGS
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
IEGSK
IERZE
OCL
RIE
RIL
ID FETCH-ieee_primary_57831773
IEDL.DBID RIE
ISBN 9781457706059
1457706059
IngestDate Wed Aug 27 02:33:10 EDT 2025
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-ieee_primary_57831773
ParticipantIDs ieee_primary_5783177
PublicationCentury 2000
PublicationDate 2010-Oct.
PublicationDateYYYYMMDD 2010-10-01
PublicationDate_xml – month: 10
  year: 2010
  text: 2010-Oct.
PublicationDecade 2010
PublicationTitle 2010 6th Central and Eastern European Software Engineering Conference
PublicationTitleAbbrev CEE-SECR
PublicationYear 2010
Publisher IEEE
Publisher_xml – name: IEEE
SSID ssj0000669877
Score 2.9051936
Snippet Source code modification is one of the most frequent operations which developers perform in software life cycle. Such operation can be performed in order to...
SourceID ieee
SourceType Publisher
StartPage 207
SubjectTerms abstract syntax tree modification
Computer bugs
differential abstract syntax tree
Electronic mail
Java
parameterized source code patterns
Programming
Prototypes
source code modification
source code patterns search
Syntactics
Title Source code modification technology based on parameterized code patterns
URI https://ieeexplore.ieee.org/document/5783177
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV2xbsIwED0B6tCpraBqS6k8dGxaSIMdz1EQQ4VQ24ENxfFFYiBBEDrw9T1fQiokli6Rc5Ktk6zk3Z3vPQM8B36irJXSo2hXeQHSIzF65IUm85NAU4xuWF3_Q81m4WKh5y14abgwiMjNZ_jqhnyWb4t070pllLyHBHeqDW2lZMXVauopBJ2UPivmbo2V04QZ66Ok0_G9ZvCMhvotimP6YUWfVXNXvfDJDSsMMJOr_7l2Db0_pp6YNxh0Ay3MuzD94oq8cHR1sS6s6wbiDRBlU0gXDr6sIJsT_167ppjVgQw8Z8Oim_muB_1J_B1NPefJclMJUyxrJ95voZMXOd6BkMZPCcKNyShUMso3EumDw3CYUZ5grLmH7rkVHs6b-3DJh-fcy_YInXK7xwFcpD_lard94v34BVz1jLc
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NT4NAEJ3UaqInNa3R1o89eBRtEVg4ExqMSBrtoTfCskvSQ6FpqQd_fWcHijHpxQuBSdhMsoE3X-8twKNlplxKxzEw2uWGpfCSCm9suCI3U8vDGF2Qun7E49idz71pB55aLoxSiobP1LO-pV6-LLOtLpVh8u4i3PEjOLZ1_6pma7UVFQRPTKA5sbdsrlVhbG8v6rR_bjg845H34gcB_rL8z3q8q1n6zxkrBDGT8_85dwH9X64em7YodAkdVfQg_KKaPNOEdbYspZ4Hoi1gVVtKZxrAJEOblv9e6rGYxQ8a6J0VyW4Wmz4MJ8HMDw3tSbKqpSmSxonXK-gWZaGugTnCzBDEhcgxWBLcFI7CT065oxwzBSHFDfQOrTA4bH6A03D2ESXRW_w-hDNqpdNk2y10q_VW3cFJ9l0tNut72psd7MmQBQ
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2010+6th+Central+and+Eastern+European+Software+Engineering+Conference&rft.atitle=Source+code+modification+technology+based+on+parameterized+code+patterns&rft.au=Itsykson%2C+V&rft.au=Timofeyev%2C+D&rft.date=2010-10-01&rft.pub=IEEE&rft.isbn=9781457706059&rft.spage=207&rft.epage=213&rft_id=info:doi/10.1109%2FCEE-SECR.2010.5783177&rft.externalDocID=5783177
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781457706059/lc.gif&client=summon&freeimage=true
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781457706059/mc.gif&client=summon&freeimage=true
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781457706059/sc.gif&client=summon&freeimage=true