프로그래밍 | 2009. 12. 24. 06:11
This Lecture require something :
- Programming Languages, C ,Data Structure, Unix Skill(vi,make...)
Chapter 1 : to Compiling
Simply stated, Compiler is a program that reads a program written in one the source language) and translates it into an equivalent program in language( the target language).
- The Context of a Compiler ( A Language Processing )
- The parse a compiler : Long 6 step but Short 3 step.
Lexical Analyzer
e.g) id1 := id2 + id3 60
↓
Syntax analyzer
e.g) :=
/ \
+
/ \
id2 *
/ \
id3 60
↓
Semantic analyzer
e.g) :=
/ \
id1 +
/ \
id2 *
/ \
id3 60.0
↓
Intermediate Code generator
temp1 := int to real(60)
temp2 := id3 * temp1
temp3 := id2 + temp2
temp4 := temp3
↓
Code
e.g) temp1 := id3 *
id1 := + temp1
↓
Code generator
MOV id3, R2
MUL #60.0, R2
MOV id2, R1
ADD R2, R1
MOV R1, id1
6 step : lexical analyzer -> syntax analyzer -> semantic analyzer -> intermediate code generator->
code optimizer -> code generator
3 step : lexical analyzer -> syntax analyzer, semantic analyzer
-> intermediate code generator, code optimizer, code generator
C# - Property (0) | 2009.12.24 |
---|---|
Python - Beautiful Soup (2) | 2009.12.24 |
SCJP 5.0 관련 자료 모음 (0) | 2009.12.24 |
[C#] 소수구하기 (0) | 2009.12.24 |
코딩도장(CodingDojo) (0) | 2009.12.24 |
프로그래밍 | 2009. 12. 24. 06:09
using System; using System.Collections; namespace c_sharp_problem_prime_number { class PrimeNumber { static void Main(string[] args) { PrimeNumberSolve primeNumbers = new PrimeNumberSolve(); primeNumbers.SetNumber(1, 50); primeNumbers.CalculatePrimeNumbers(); primeNumbers.PrintPrimeNumbers(); } } class PrimeNumberSolve { public PrimeNumberSolve() { _startNumber = 0; _endNumber = 0; _resultPrimeNumberList = new ArrayList(); _primeNumberList = new ArrayList(); } public void SetNumber( int numA, int numB ) { _startNumber = Math.Min(numA, numB); _endNumber = Math.Max(numA, numB); } public bool IsPrimeNumber( int number ) { if (number < 2) { return false; } for (int i = 2; i < number; i++) { if (number % i == 0) { return false; } } return true; } public void CalculatePrimeNumbers() { PreCalculatePrimeNumbers(); for (int num = _startNumber; num <= _endNumber; num++) { bool isPrimeNum = true; if (_primeNumberList.Count > 0 ) { foreach (int i in _primeNumberList) { if (num % i == 0) { isPrimeNum = false; } } } else { isPrimeNum = IsPrimeNumber(num); } if (isPrimeNum == true) { _primeNumberList.Add(num); _resultPrimeNumberList.Add(num); } } } public void PreCalculatePrimeNumbers() { for( int i = 2; i < _startNumber; i++ ) { bool isPrimeNumber = IsPrimeNumber(i); if( isPrimeNumber == true ) { _primeNumberList.Add(i); } } } public void PrintPrimeNumbers() { foreach( int number in _resultPrimeNumberList ) { Console.WriteLine( number ); } } private ArrayList _resultPrimeNumberList; private ArrayList _primeNumberList; private int _startNumber; private int _endNumber; } }
C# - Property (0) | 2009.12.24 |
---|---|
Python - Beautiful Soup (2) | 2009.12.24 |
SCJP 5.0 관련 자료 모음 (0) | 2009.12.24 |
Compiler - Introduce (0) | 2009.12.24 |
코딩도장(CodingDojo) (0) | 2009.12.24 |
프로그래밍 | 2009. 12. 24. 06:08
코딩도장은 2005년에 더 적절한 방법으로, 기술의 깊이와 존중하면서,
프로그래밍을 가르치고 배우는 방식을 발견하기 위한 시작하였습니다.
'도장'의 원래 아이디어는 미리 준비한 해결 과정의 시연을 주어진 문제에 대한 해결 방법을 개발하는
과정을 것입니다. 코딩 도장은 결과가 아니라 과정을 시연, 의논, 개선합니다.
예를 들어, 피보나치 수열을 만드는 코드를 작성하는데,
페어들은 "무"에서 피보나치 수열 코드로 이르는 다양한 루트를 예컨대 TDD로 한번 해보고,
이번에는 좀 더 개선하고 세련되게 다시 해보고(DoItAgainToLearn)...
하나의 행위예술이 된다. 정말 없다고 생각될 때까지 해본다.
그 시연 자체를 보고(결과 코드뿐만 "아름답다"고 느낄 수 있게. 그런 것들을 함께 시연하고 의논한다.
만약 내가 유도를 배우길 원한다면, 난 가장 가까운 도장에 등록하고,
다음 2년간 매주 1시간씩 출석을 해야 할 것이다.
그 기간이 지나고 나면, 난 아마도 기술을 발전시키기 위해 부지런히 과정을 선택할 것이다.
몇년간 더 훈련을 하면, 검은띠를 딸 있을 것이고,
그것은 단지 내가 다른 배움의 도달했다는 표시에 불과한 것이다.
어떤 사범도 것을 중단할 수 없다.
만약 내가 OO프로그래밍을 배우길 원한다면, 고용주는 나를 큰 훈련 기관의 올해 프로그램
고른, 3일 단기 자바 코스에 넣을 것이다. 그것은 참 바보같은
코딩 스킬을 얻는것은 일시적인 만족감의 프로세스가 아니다.
이 워크샵은 더 적절한 방법으로, 기술의 깊이와 정묘함을 존중하면서,
프로그래밍을 가르치고 배우는 방식을 발견하기 위한 것이다.
책을 보고 토론하거나 하는 모임은 이미 많이 있다 (몸으로 수행하라)
각자 만들어 온 코드만 갖고 토론하거나 하기보다 코드를 만든 과정을 통해 많은 것을 배운다
정보올림피아드 같은 ProgrammingContest 아니다.
단순한 문제풀이 스터디와 다르다. DoItAgainToLearn
여러 언어를 것에서 더 많은 학습의 기회가 있다고 믿는다.
코딩도장에서 사용했던 언어는 C, C++, Python, Java, Io, Haskell, Ruby, 등
꼭 구현 과정이 TDD일 필요는 없으나 최소한의 코드는 있는 것이 좋다
여기 나열한 워크샾 일정은 초안이며 이전의 세션에서 얻은 경험을 바탕으로 변경될 수
짝으로 프로그래밍하며 앞에서 프로젝터를 보여줄 때에는 자신이 문제를 풀어나갔던 과정을
그대로 보여준다. 수련생들은 보며 시연자들이 어떤 키배열을 쓰는지,
어떤 텍스트 편집기를 쓰는지, 순서로 프로그래밍 하는 지 등을 "고대로" 관찰할 수 있다.
참가자들이 것은: 노트북 컴퓨터(필요시 두 사람에 한 대 꼴로만 있으면 가능),
프로그래밍할 준비, 문제를 풀어보려고 노력해 봤을 것.
"관장"은 코딩도장 운영(및 사전 준비와 예약 등)을 맡는다.
C# - Property (0) | 2009.12.24 |
---|---|
Python - Beautiful Soup (2) | 2009.12.24 |
SCJP 5.0 관련 자료 모음 (0) | 2009.12.24 |
Compiler - Introduce (0) | 2009.12.24 |
[C#] 소수구하기 (0) | 2009.12.24 |
읽은거 | 2009. 12. 24. 06:05
모리차장의 비밀과외 (0) | 2011.01.10 |
---|---|
1만 시간 법칙 (0) | 2009.12.24 |
왜 나는 너를 사랑하는가 (0) | 2009.12.24 |
스크럼(Scrum)과 XP (0) | 2009.12.24 |
소프트웨어 산책 - 프로그래머의 문제 풀이 (0) | 2009.12.24 |
읽은거 | 2009. 12. 24. 06:03
사랑은 사랑하는 사람의 본질적인 평범함을 인정하지 않음으로써 그 광기를 드러낸다.
그래서 방관자 자리에 선 사람들에게는 사랑에 빠진 사람들이 지겹다. 방관자들은 묻는다.저 사람들은 사랑하는 사람에게서 한 인간 외에 무엇을 보는 걸까? - p.121
눈에 보이는 것은 몸 뿐이기 때문에 사랑하는 사람에게 홀린 연인은
영혼 역시 그 껍질과 똑같기를 바라게 된다.몸이 거기에 어울리는 영혼을 가지고 있기를,살갗이 표현하는 것이 속에 든 본질이기를 바라게 된다.나는 몸 때문에 클로이를 사랑한 것이 아니라,그녀의 본질에 희망을 품게 해주었기 때문에 그 몸을 사랑했다.그것은 매우 가슴 설레는 희망이었다. - p.124
어떤 사람을 사랑한다는 것은 그 사람에게 깊은 관심을 가진다는 것이며,
그 관심으로 그 사람이 무엇을 하고무슨 말을 하는지 스스로 더 풍부하게 느끼게 해준다는 것이다. - p.144
나는 클로이를 사랑할지 모르지만, 그녀를 알기 때문에 그녀를 갈망하지 않는다.
갈망은 우리가 알고 있는 사람들을 향할 때에는 무한정 뻗어나갈 수가 없다.그들의 특질은 이미 도표로 정리되어 있고 따라서 갈망에 대한 신비가 없기 때문이다.반면 몇분 동안 또는 몇 시간 동안 보았다가 영원히 사라져버리는 얼굴은정리할 수 없는 꿈, 규정할 수도 없고 꺼버릴 수도 없는 욕망에 필수적인 촉매가 된다. - p.162
내가 전 애인들에 대해서 클로이와 이야기하기를 싫어한 것도 변심에 대한 두려움에서 나왔다.
그녀들은 내가 과거 어느 시점에서 영원하리라고 생각했던 상황이 그렇게 되지 않았음을 일깨워주었다. 관계의 내부에서 볼때 과거의 사랑들에 대한 무관심에는 극히 잔인한 면이 있었다. p.172
내가 클로이를 사랑하면서 생기는 불안은 부분적으로는
내 행복의 원인이 쉽게 사라질 수 있는 상황에서 오는 불안이었다.클로이는 갑자기 나에게 흥미를 잃을 수도 있었고, 죽을 수도 있었고, 다른 남자와 결혼할 수도 있었다.그래서 사랑이 절정에 이르렀을 때 관계를 일찌감치 끝내고 싶은 유혹이 생겼다.다른 사람이나 습관이나 익숙함이 관계를 끝내는 꼴을 보니니,차라리 클로이나 나 둘중의 하나가 끝을 내버리자는 것이었다.우리는 가끔 연애가 자연스러운 종말에 이르기 전에 끝내버리고 싶은 충동을 느꼈다.증오에서 나온 살인이 아니라 지나친 사랑에서 나온,아니 지나친 사랑이 초래할 수도 있는 두려움에서 나온 살인이었다.연인들은 단지 그들의 행복의 실험에 수반되는 불확실성과 위험을견딜수 없다는 이유로 사랑의 이야기를 끝내버릴 수도 있다. p.185
사랑을 할 때 중요한 것은 시간의 길이가 아니야.
느끼는 것과 하는일이 모두 강렬해진다는 것이 중요한거지 -p.220
1만 시간 법칙 (0) | 2009.12.24 |
---|---|
패턴 그리고 객체지향적 코딩의 법칙 (0) | 2009.12.24 |
스크럼(Scrum)과 XP (0) | 2009.12.24 |
소프트웨어 산책 - 프로그래머의 문제 풀이 (0) | 2009.12.24 |
휴리스틱(Heuristic) (0) | 2009.12.24 |
Recent Comments