KR20090004210A - Apparatus for developing a software program using an integrated development environment and software program development system using an integrated development environment - Google Patents

Apparatus for developing a software program using an integrated development environment and software program development system using an integrated development environment Download PDF

Info

Publication number
KR20090004210A
KR20090004210A KR1020070068232A KR20070068232A KR20090004210A KR 20090004210 A KR20090004210 A KR 20090004210A KR 1020070068232 A KR1020070068232 A KR 1020070068232A KR 20070068232 A KR20070068232 A KR 20070068232A KR 20090004210 A KR20090004210 A KR 20090004210A
Authority
KR
South Korea
Prior art keywords
code
final
source
intermediate code
file
Prior art date
Application number
KR1020070068232A
Other languages
Korean (ko)
Inventor
이양선
Original Assignee
이양선
한국문화콘텐츠진흥원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이양선, 한국문화콘텐츠진흥원 filed Critical 이양선
Priority to KR1020070068232A priority Critical patent/KR20090004210A/en
Publication of KR20090004210A publication Critical patent/KR20090004210A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

An apparatus for developing a software program using integrated development environment capable of supporting a plurality of program languages and a software program development system using integrated development environment are provided to develop a program efficiently by using the integrated development environment. A source code managing part(112) edits a source code file or a opened new source code file. A compile part(114) selects one out of a plurality of compilers(120, 130) based on the program language used for the source code file. An intermediate code is produced by using the selected compiler. An assembly section(116) provides the intermediate code to an assembler(140). The assembler produces a virtual machine code or a native code based on a final code option. A debugging/executing part(118) emulates the intermediate code. A debugger(160) controls the emulator. The intermediate code is debugged and the intermediate code is debugged.

Description

FIELD OF DEVELOPING A SOFTWARE PROGRAM USING AN INTEGRATED DEVELOPMENT ENVIRONMENT AND SOFTWARE PROGRAM DEVELOPMENT SYSTEM USING AN INTEGRATED DEVELOPMENT ENVIRONMENT}

1 is a block diagram illustrating a software program development system using an integrated development environment according to an exemplary embodiment of the present invention.

FIG. 2 is a diagram illustrating a user interface of the software program development system shown in FIG. 1.

<Explanation of symbols for the main parts of the drawings>

110: program development unit 112: user interface unit

114: compilation unit 116: assembly unit

118: debugging / execution unit

Embodiments of the present invention relate to an apparatus for developing a software program using an integrated development environment and a software program development system using an integrated development environment.

Today's software programs are mostly developed using the Integrated Development Environment (IDE).

An integrated development environment is a type of computer software that assists computer programmers in developing software. In general, an integrated development environment provides an interface that can include or work with source code editors, compilers and / or interpreters, build automation tools, and debuggers.

If necessary, program developers can develop software using a plurality of programming languages. Therefore, program developers need to develop software using an integrated development environment capable of supporting a plurality of programming languages.

In addition, program developers can develop software that can run properly on a variety of machines, if necessary, so that program developers can use an integrated development environment to debug intermediate code output from the compiler before running the software on the target machine. Develop programs efficiently.

In addition, program developers can develop software that can run properly on a variety of machines, if necessary, so that program developers need to develop software using an integrated development environment that can emulate a variety of machines to run the software on a variety of machines. There is.

An object of the present invention is to provide an apparatus for developing a software program using an integrated development environment that can support a plurality of programming languages in order to solve the problems of the prior art.

Another object of the present invention is to provide a software program development system using an integrated development environment capable of supporting a plurality of program languages.

Apparatus for developing software using the integrated development environment of the present invention to achieve the above object is a source code management unit for opening a previously created source code file or edit the open source code file or a new source code file, the open Select one of a plurality of compilers that generate the same intermediate code irrespective of the programming language based on a programming language used in a sourced or edited source code file (hereinafter referred to as a "source code file"); A compiler for generating the intermediate code using a compiler, and causing the emulator to emulate the intermediate code to execute the intermediate code, and to have the debugger control the emulator to debug the intermediate code to debug the intermediate code It includes debugging / execution.

The apparatus may further comprise an assembly portion for providing the intermediate code to an assembler to cause the assembler to generate virtual machine code or native code (hereinafter referred to as "final code") based on final code options.

The debugging / executing unit may execute the final code by causing the emulator to emulate the final code, and debug the final code by causing the debugger to control the emulator to debug the final code.

In order to achieve the above object, the software development system using the integrated development environment of the present invention includes first and second compilers each generating the same intermediate code regardless of the programming language, an emulator emulating the intermediate code, and the emulator. A debugger that controls and debugs the intermediate code, and a source code manager that opens a previously created source code file or edits the opened source code file or a new source code file, the open or edited source code file (hereinafter, If the programming language of the "source code file" corresponds to the first programming language, the intermediate code is generated using the first compiler, and the programming language used in the source code file corresponds to the second programming language. In the case of using the second compiler And a program development unit including a compiling unit for generating an intermediate code, and a debugging / executing unit for executing the intermediate code using the emulator and debugging the intermediate code using the debugger.

The system may further include an assembler that receives the intermediate code and generates virtual machine code or native code (hereinafter referred to as “final code”) according to a final code option, and the program development unit may include the intermediate code in the assembler. An assembly portion for providing code to cause the assembler to generate the final code, wherein the debugging / executing portion may cause the emulator to emulate the final code and execute the final code, and the debugger may cause the emulator to The final code can be debugged by controlling the final code.

For example, the first programming language may correspond to the C ++ language, and the second programming language may correspond to the JAVA language.

Software development system using the integrated development environment of the present invention in order to achieve the above another object is a plurality of compilers each generating the same intermediate code, regardless of the programming language, the intermediate code receives the intermediate code in accordance with the final code option Or an assembler, a virtual machine, a native machine, and an intermediate code execution machine that generates native code (hereinafter referred to as “final code”), using the virtual machine to emulate the virtual machine code and use the native machine. An emulator that emulates the native code and emulates the intermediate code using the intermediate code execution machine, a debugger that controls the emulator to debug the intermediate code and the final code, and at least one or more needed when software is generated. small A project manager for managing a source list including information about a code file, an editing manager for editing the source code file (the source code file included in the source list or a new source code file to be included in the source list), and A source code manager including a display manager to display information about the source code file or debugging information generated from the debugger; A compiling unit for selecting one of the compilers according to a programming language used in the source code file, and providing the source code file to the selected compiler so that the selected compiler generates the intermediate code; An assembly unit for providing the intermediate code to the assembler so that the assembler generates the final code; And providing the intermediate code or the final code to the debugger so that the debugger controls the emulator to debug the intermediate code or the final code, and providing the intermediate code or the final code to the emulator to provide the intermediate code. Or a program development unit including a debugging / executing unit for executing the final code.

Therefore, an embodiment of the present invention can efficiently develop a program using an integrated development environment (IDE) supporting a plurality of programming languages.

In addition, an embodiment of the present invention can efficiently develop a program using an integrated development environment capable of debugging intermediate code independent of language.

In addition, an embodiment of the present invention can efficiently develop a program using an integrated development environment that can emulate a variety of machines.

Hereinafter, embodiments of the present invention will be described with reference to the drawings.

Since descriptions of embodiments of the present invention are merely illustrated for structural to functional descriptions of the present invention, the scope of the present invention should not be construed as limited by the embodiments described in the present invention. That is, the embodiments of the present invention may be variously modified and may have various forms, and thus, it should be understood that the present invention includes equivalents capable of realizing the technical idea of the present invention.

On the other hand, the meaning of the terms described in the present invention should be understood as follows.

Terms such as “first” and “second” are used to distinguish one component from other components, and the scope of the present invention should not be limited by these terms. For example, the first component may be named a second component, and similarly, the second component may also be named a first component.

The term “and / or” should be understood to include all combinations that can be presented from one or more related items. That is, the meaning of “first item, second item and / or third item” not only includes the first, second or third item, but also presents from two or more of the first, second and third items. It means a combination of all possible items.

When a component is referred to as being "connected" to another component, it should be understood that there may be other components in between, although it may be directly connected to the other component. On the other hand, when a component is said to be "directly connected" to another component, it should be understood that there is no other component in between. On the other hand, other expressions describing the relationship between the components, such as "between" and "immediately between" or "neighboring to" and "directly neighboring to", should be interpreted as well.

Singular expressions described herein are to be understood to include plural expressions unless the context clearly indicates otherwise, and the terms "comprise" or "having" include elements, features, numbers, steps, operations, and elements described. It is to be understood that the present specification is intended to designate that there is a part or a combination thereof, and does not exclude in advance the possibility of the presence or addition of one or more other features or numbers, steps, operations, components, parts or combinations thereof. do.

Each step described in the present invention may occur out of the stated order unless the context clearly dictates the specific order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

Unless otherwise defined, all terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms such as those defined in the commonly used dictionaries should be interpreted to have meanings consistent with the meanings in the context of the related art, and are to be interpreted as having ideal or overly formal meanings unless expressly defined in the present application. Can't be.

1 is a block diagram illustrating a software program development system using an integrated development environment according to an exemplary embodiment of the present invention.

Referring to FIG. 1, the software program development system 100 may include a program development unit (PDU) 110, a plurality of compilers 120 and 130, an assembler 140, a debugger 150, and an emulator 160. ).

The program development unit 110 is a device for developing software using an integrated development environment (IDE), and includes a source code management unit 112, a compilation unit 114, an assembly unit 116, and a debugging / executing unit. 118; The operation of the program development unit 110 will be described later.

The plurality of compilers 120 and 130 compile the first and second programming languages (eg, the C ++ language and the JAVA language), respectively, and generate the same intermediate code regardless of the first and second programming languages. do. That is, the plurality of compilers 120 and 130 generate the same intermediate code regardless of the programming language.

The assembler 140 receives the intermediate code output from the plurality of compilers 120 and 130 and generates virtual machine code or native code (hereinafter referred to as “final code”) according to the final code option. Virtual machine code refers to software that can run on a virtual machine (eg, a Java Virtual Machine), and native code refers to software that can only run on a certain type of machine (ie, a native machine). do.

For example, the plurality of compilers 120 and 130 and the assembler 140 may adopt the method described in Korean Patent Application No. 2007-0043165.

Emulator 150 includes a virtual machine 152, a native machine 154, and an intermediate code execution machine 156, which emulates virtual machine code using a virtual machine 152 and uses a native machine 154 to Emulates native code and uses the intermediate code execution machine 156 to emulate intermediate code.

Debugger 160 controls emulator 150 to debug intermediate and final code. For example, debugger 160 may obtain debugging information by having emulator 150 emulate only a specific portion of software.

FIG. 2 is a block diagram illustrating a source code manager of FIG. 1.

Referring to FIG. 2, the source code manager 112 includes a project manager 210, an edit manager 220, and an output manager 230.

The project manager 210 manages a source list that includes information about at least one source code file needed when the software is created. For example, since program developers can develop one software using one or more source code files, the project manager 210 can manage information about at least one source code file needed when one software is written. have.

The edit manager 220 opens a previously created source code file or edits an open source code file or a new source code file. If the project manager 210 is used, the edit manager 220 may edit the source code file (the source code file included in the source list or the new source code file to be included in the source list).

The display manager 230 displays information about the source code file edited by the edit manager 220 or debugging information generated from the debugger 160. For example, the debugging information may include variable values that the user wants to know.

Hereinafter, the operation of the program development unit 110 will be described.

The source code manager 112 opens a previously created source code file or edits an open source code file or a new source code file. Hereinafter, an open source code file or a new source code file is called a source code file.

The compiling unit 114 selects one of the plurality of compilers 120 and 130 based on a programming language used in the source code file, and generates an intermediate code using the selected compiler. As described above, the compilers 120 and 130 generate the same intermediate code regardless of the programming language.

For example, when the programming language used for the source code file is a C ++ language, the compilation unit 114 may select the C ++ compiler 120 to generate intermediate code, and the programming language used for the source code file may be JAVA. In the case of a language, the compiling unit 114 may select the JAVA compiler 130 to generate an intermediate code.

The assembly unit 116 provides intermediate code to the assembler 140 so that the assembler 140 generates virtual machine code or native code based on the final code option. Hereinafter, the virtual machine code or native code is called final code. That is, the assembly unit 116 may generate the final code using the assembler 140 according to the machine executing the software.

The debugging / executing unit 118 executes the intermediate code by causing the emulator 150 to emulate the intermediate code, and debugs the intermediate code by allowing the debugger 160 to control the emulator 150 to debug the intermediate code. Therefore, program developers can be provided with an integrated development environment that can debug language-independent intermediate code.

In addition, the debugging / executing unit 118 executes the final code by causing the emulator 150 to emulate the final code, and debugger the final code by allowing the debugger 160 to control the emulator 150 to debug the final code. Thus, a program developer can be provided with an integrated development environment that can emulate a variety of machines.

Embodiments of the present invention presented above may have an effect including the following advantages. However, all the embodiments of the present invention are not meant to include them all, and thus the scope of the present invention should not be understood as being limited thereto.

An embodiment of the present invention can efficiently develop a program using an integrated development environment (IDE) supporting a plurality of programming languages.

In addition, an embodiment of the present invention can efficiently develop a program using an integrated development environment capable of debugging intermediate code independent of language.

In addition, an embodiment of the present invention can efficiently develop a program using an integrated development environment that can emulate a variety of machines.

Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

Claims (7)

A source code manager for opening a previously created source code file or editing the opened source code file or a new source code file; Select one of a plurality of compilers that generate the same intermediate code irrespective of the programming language based on the programming language used in the opened or edited source code file (hereinafter referred to as "source code file"), A compiling unit to generate the intermediate code using the selected compiler; And Allow an emulator to emulate the intermediate code to execute the intermediate code, and have the debugger control the emulator to debug the intermediate code to debug the intermediate code. Developing device. The method of claim 1,  And providing an assembler with the intermediate code to cause the assembler to generate virtual machine code or native code (hereinafter referred to as “final code”) based on a final code option. The method of claim 2, wherein the debugging / execution unit Debug the final code by causing the emulator to emulate the final code to execute the final code and allow the debugger to control the emulator to debug the final code. First and second compilers, respectively, for generating the same intermediate code regardless of the programming language; An emulator that emulates the intermediate code; A debugger for controlling the emulator to debug the intermediate code; And A source code management unit for opening a previously created source code file or editing the opened source code file or a new source code file, a programming language of the opened or edited source code file (hereinafter referred to as a "source code file") Is used to generate the intermediate code using the first compiler, and when the program language used in the source code file corresponds to a second program language, the second compiler is used to generate the intermediate code. Software development using an integrated development environment including a compiler for generating intermediate code, and a program development unit including a debugging / execution unit for executing the intermediate code using the emulator and debugging the intermediate code using the debugger system. The method of claim 4, wherein An assembler that receives the intermediate code and generates virtual machine code or native code (hereinafter referred to as “final code”) according to a final code option, The program development unit further includes an assembly unit for providing the intermediate code to the assembler to cause the assembler to generate the final code, The debugging / executing unit causes the emulator to emulate the final code and executes the final code, and the debugger controls the emulator to debug the final code to debug the final code. . 5. The software development system of claim 4, wherein the first programming language corresponds to a C ++ language, and the second programming language corresponds to a JAVA language. A plurality of compilers each generating the same intermediate code regardless of the programming language; An assembler that receives the intermediate code and generates virtual machine code or native code (hereinafter referred to as “final code”) according to a final code option; A virtual machine, a native machine, and an intermediate code execution machine, emulating the virtual machine code using the virtual machine, emulating the native code using the native machine, and using the intermediate code execution machine. An emulator emulating a; A debugger that controls the emulator to debug the intermediate code and the final code; And A project manager for managing a source list including information about at least one source code file required when the software is created, the source code file (the source code file included in the source list or a new source to be included in the source list) A source code management unit including an editing manager for editing a code file) and a display manager for displaying information on the source code file or debugging information generated from the debugger; A compiling unit for selecting one of the compilers according to a programming language used in the source code file, and providing the source code file to the selected compiler so that the selected compiler generates the intermediate code; An assembly unit for providing the intermediate code to the assembler so that the assembler generates the final code; And Providing the intermediate code or the final code to the debugger such that the debugger controls the emulator to debug the intermediate code or the final code, providing the intermediate code or the final code to the emulator to provide the intermediate code or And a program development unit including a debugging / execution unit to execute the final code.
KR1020070068232A 2007-07-06 2007-07-06 Apparatus for developing a software program using an integrated development environment and software program development system using an integrated development environment KR20090004210A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070068232A KR20090004210A (en) 2007-07-06 2007-07-06 Apparatus for developing a software program using an integrated development environment and software program development system using an integrated development environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070068232A KR20090004210A (en) 2007-07-06 2007-07-06 Apparatus for developing a software program using an integrated development environment and software program development system using an integrated development environment

Publications (1)

Publication Number Publication Date
KR20090004210A true KR20090004210A (en) 2009-01-12

Family

ID=40486709

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070068232A KR20090004210A (en) 2007-07-06 2007-07-06 Apparatus for developing a software program using an integrated development environment and software program development system using an integrated development environment

Country Status (1)

Country Link
KR (1) KR20090004210A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150063798A (en) 2013-12-02 2015-06-10 한국과학기술연구원 Method for code conversion using target-independent debugging information, apparatus and computer-readable recording medium with program therefor
KR20200117719A (en) * 2019-04-05 2020-10-14 주식회사 티맥스 소프트 Servers and computer programs for debugging of native programs and virtual machine programs on integrated development environment
KR102214060B1 (en) 2019-08-20 2021-02-09 나모웹비즈주식회사 Integrated development cloud server and method for providing integrated development environment based on cloud to program software for subminiature iot device that support interwork with iot service infrastructure
KR20220058246A (en) 2020-10-30 2022-05-09 나모웹비즈주식회사 Library management method for software development for subminiature iot device and integrated development cloud server

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150063798A (en) 2013-12-02 2015-06-10 한국과학기술연구원 Method for code conversion using target-independent debugging information, apparatus and computer-readable recording medium with program therefor
KR20200117719A (en) * 2019-04-05 2020-10-14 주식회사 티맥스 소프트 Servers and computer programs for debugging of native programs and virtual machine programs on integrated development environment
KR102214060B1 (en) 2019-08-20 2021-02-09 나모웹비즈주식회사 Integrated development cloud server and method for providing integrated development environment based on cloud to program software for subminiature iot device that support interwork with iot service infrastructure
KR20220058246A (en) 2020-10-30 2022-05-09 나모웹비즈주식회사 Library management method for software development for subminiature iot device and integrated development cloud server

Similar Documents

Publication Publication Date Title
US10540262B2 (en) Using edit and continue to dynamically set and unset optimizations in source code while debugging
US8527961B2 (en) Expression-level debugging without format changes
EP3338179B1 (en) Graphical representation of data in a program code editor
EP3244306B1 (en) A computer-implemented method for allowing modification of a region of original code
US9489286B2 (en) Method and system for computer assisted hot-tracing mechanism
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
US8930879B2 (en) Application building
US11256481B2 (en) Software development environment with compilation and read-evaluate-print-loop operations
US8473903B2 (en) Code edit apparatus and recording medium
US20080127061A1 (en) Method and system for editing code
KR20090004210A (en) Apparatus for developing a software program using an integrated development environment and software program development system using an integrated development environment
CN109144849B (en) Embedded software debugging method
Satav et al. A comparative study and critical analysis of various integrated development environments of c, c++, and java languages for optimum development
Callanan et al. Extending GCC with modular GIMPLE optimizations
WO2023038715A1 (en) Hot reloading a running application with an unsaved source code change
JP5974444B2 (en) Information processing system, information processing method, information processing program, and recording medium
JPH11110256A (en) Device and method for debugging program, and computer readable recording medium recorded with the method for the same
Grimm Debugging SCCharts
McDirmid et al. The scala plugin for eclipse
Izawa Supporting multi-scope and multi-level compilation in a meta-tracing just-in-time compiler
Lilis et al. An Integrated Approach to Source Level Debugging and Compile Error Reporting in Metaprograms.
Alekseev et al. Tools for control flow analysis of java code
Kersten Tool requirements for commercial development with AspectJ
Hindriks et al. GOAL User Manual
Gardner et al. CSP++: An open source tool for building concurrent applications from CSP specifications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application