분류 전체보기
-
기타개발/Tool 2013. 8. 14. 11:40
Clang/LLVM목표는 GNU 컴파일러 모음 를 대체하는 것이다. C, C++, 오브젝티브-C, 오브젝티브-C++ 프로그래밍 언어
-
메뉴 - SwingGUI/컨트롤 2013. 8. 6. 15:41
java.util.EventObject.getSource()java.awt.AWTEvent -> java.util.EventObjectjava.awt.event.ActionEvent -> java.awt.AWTEvent javax.swing.ButtonGroup.add() javax.swing.AbstractButton -> javax.swing.JComponent.addActionListener() .setActionCommand().getActionCommand().setMnemonic()javax.swing.JMenuItem -> javax.swing.AbstractButton.setAccelerator()javax.swing.JRadioButtonMenuItem -> javax.swing.JMen..
-
규격Platform/라이브러리 2013. 8. 5. 23:18
collect2/usr/bin/ld -dynamic-linker-shared * 공유 라이브러리다이내믹 링크(dynamic link)ld.so/lib/ld-linux.so.2sonameABI(application binary interface)의 버전 번호 포함 로더링커명링커 # ldconfig $ ldd hello 대부분의 unix 시스템: ".so" 접미사HP-UX: ".sl"MS 시스템: DLL(dynamic link library) * 동적 로드공유 라이브러리는 어플리케이션이 실행중이더라도 언제든 로딩이 가능하다. 리눅스: "dlopen", "dlsym, "dlclose"윈도우즈 시스템: "LoadLibrary", "GetProcAddress" * 정적 라이브러리스태틱 링크(static link)..
-
ELF(executable and linking format)컴파일러/코드 생성 2013. 8. 3. 00:38
프로그램 헤더(program header; 로더) 정보로 처리하면 세그먼트의 집합으로 보이고, 섹션 헤더(section header; 어셈블러나 링커) 정보로 처리하면 섹션의 집합으로 보인다. 세그먼트는 1개 이상의 섹션으로 구성된다.c.f. ELF 헤더 재배치 가능 파일(relocatable file)어셈블러(GNU as)가 생성하는 오브젝트 파일프로그램 헤더가 없으므로 그대로 실행할 수 없다c.f. 링크 입력 모듈에서 정의되어 있는 global symbol일반 함수와 전역 변수입력 모듈에서 참조하는 하고 있지만 다른 곳에 정의된 global symbolextern으로 선언된 함수와 변수입력 모듈에서 정의되어 해당 모듈에서만 배타적으로 참조할 수 있는 local symbol정적 함수와 정적 변수 gcc..
-
-
JavaCC컴파일러/중간 표현 2013. 7. 25. 12:56
단계적으로 기계어에 가까운 표현모두 점프문(jump statement)제어 구조연산자에 부호모두 포인터구조체배열포인터 트리 구조중간 표현 노드 three-address codeQuadruple 문장(Stmt)의 리스트 Assign -> StmtCJump -> Stmt.cond() // ExprJump -> Stmt.label()Return -> Stmt.expr()LabelStmt -> Stmt.label()Expr(식).type().asmValue() // ImmediateValueUni -> Expre.g. .. notl %eax .expr()Bin -> Expre.g. .. push %eax .. pop %ecx .. addl %ecx, %eax .op().left() // Expr.right() ..