블로그 이미지
황상두

카테고리

기타 (101)
알고리즘(백준) (3)
임베디드 보안 (7)
windows internal (22)
공부 (16)
정보보안 (6)
프로그래밍 (7)
Github (1)
Hadoop (1)
디바이스 드라이버 (1)
전공 스터디 (27)
과제 (8)
영어 (6)
기록물 (6)
Total
Today
Yesterday

달력

« » 2025.4
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

공지사항

태그목록

최근에 올라온 글

'공부/프로그래밍'에 해당되는 글 7건

  1. 2017.12.16 프로그래밍 네이밍 규칙
  2. 2017.01.14 논리형 프로그래밍(?)
  3. 2017.01.14 함수형 프로그래밍(?)
  4. 2017.01.14 식과 제어문
  5. 2017.01.13 l-value 와 r-value 차이

1. 카멜 표기법

우리가 평소 쓰는 변수명과 같다고 보면 된다.

ex) int sayHello;

2.파스칼 표기법

클래스명에서 쓰는 표기법이다.
ex) class SayHello{};

 

enum 네이밍 규칙

class 처럼 대문자로 시작하는 파스칼 표기법을 사용한다.

안에 있는 element 경우도 파스칼 표기법을 따른다

 

'공부 > 프로그래밍' 카테고리의 다른 글

논리형 프로그래밍(?)  (0) 2017.01.14
함수형 프로그래밍(?)  (0) 2017.01.14
식과 제어문  (0) 2017.01.14
l-value 와 r-value 차이  (0) 2017.01.13
동적영역과 정적영역의 차이  (0) 2017.01.12
Posted by 황상두
, |

http://clojure.or.kr/wiki/doku.php?id=study:algorithms:functional_logic_programming


논리형 프로그래밍이란?


기호논리의 원리를 이용한다. 관계를 중요시한다.

학교다닐떄 배우던 명제와 비슷하다.

ex)

전제

a는 c의 아버지다.

c는 d의 아버지다.


알수있는것!

a는 d의 할아버지다.


명령형 언어와 함수 언어에서의 프로그래밍은 기본적으로 절차적 (procedural) 이다. 그것은 프로그래머가 프로그램에 의해 무엇이 성취되는지를 알고 계산이 정확하게 어떻게 수행되는지를 컴퓨터에게 지시하는 것을 의미한다. 다시 말하면, 컴퓨터는 명령을 따르는 간단한 장치로서 취급된다. 계산되는 모든 것은 계산의 모든 세부 사항이 상세히 설명되어야 한다. 어떤 사람은 이런 것이 컴퓨터 프로그래밍을 어렵게 하는 핵심이라고 믿는다.

어떤 비명령형 언어에서의 프로그래밍, 특히 논리 프로그래밍 언어에서의 프로그래밍은 비절차적이다. 이러한 언어에서의 프로그램은 결과가 계산되는 방법을 정확하게 서술하지 않고 결과의 형식을 서술한다. 차이점은 우리가 컴퓨터 시스템이 어쨌든 결과가 얻어지는 방식을 결정한다고 가정하는 것이다. 논리 프로그래밍 언어에 이 능력을 제공하기 위해 필요한 것은 적당한 정보와 원하는 계산 결과를 추론하는 방법을 컴퓨터에게 제공하는 간결한 수단이다. 수렁 해석학은 컴퓨터에 대한 기본 통신 형식을 제공하고, Robinson 에 의해 첫번째로 개발된 증명 방법은 추론 기법을 제공한다


선언형 언어는  해법 정의(HOW)를 하기보다는 무엇(what)을 할 것인지에 중점을 둔다.

즉 우리가 대개 처음 배우는 C언어나 이런언어들은 보통 문제해결을 위해서 코딩을 한 후 주석을 단다.

왜 달까? 문제해결을 위한 해법을 적어 놓은 것을 상대방이 이해하기 쉽게 하기위함이다.



근데 선언형언어 및 논리형 프로그래밍은 결과를 물어보는 방식이다. 즉 애초에 결과를 물어보기때문에 주석이 덜필요하다

생각해보자

ex) 너 남자니? (male(a))

주석을 달필요가 있나?? 애초에 코딩이 질문이기에 필요없다.


'공부 > 프로그래밍' 카테고리의 다른 글

프로그래밍 네이밍 규칙  (0) 2017.12.16
함수형 프로그래밍(?)  (0) 2017.01.14
식과 제어문  (0) 2017.01.14
l-value 와 r-value 차이  (0) 2017.01.13
동적영역과 정적영역의 차이  (0) 2017.01.12
Posted by 황상두
, |

**명령형프로그래밍은 절차지향 프로그래밍이랑 비슷하다.**|


소위 FP(functional programming)이라고 불린다.


C언어의 매크로 함수

C++의 인라인 함수와 비슷한 느낌이라고 할까


함수형 프로그래밍이란 수학적 원리의 함수들로만 구성시키는 방식을 뜻한다.

ex) #define POWER(X) ((X)*(X))

X값이 어떤 값이든 항상 X의 제곱이 출력된다.


함수형 프로그래밍과 연관이 깊은 것이 순수함수개념이다

순수함수의 특징은

1. 데이터 수정이 불가능하다(X를 수정하지 않는다)

2. 항상 결과가 동일하다.(항상 X의 제곱이 결과다)


보시다시피, 부작용이 적은 프로그래밍 방식이다.

그렇기에 8코어 , 16코어... 멀티코어방식에 적합하다.

동시에 사용해도 안정적이기 떄문이다.


대신 복잡함을 수반한다. 쓸데없이 복잡하게 코딩해야되는 경우가 생긴다.

재귀함수를 써서 반복문을 구현한다든지...

매개변수로 함수를 쓴다든지 등등 여러상황이 있다.


http://changsuk.me/?p=1916

'공부 > 프로그래밍' 카테고리의 다른 글

프로그래밍 네이밍 규칙  (0) 2017.12.16
논리형 프로그래밍(?)  (0) 2017.01.14
식과 제어문  (0) 2017.01.14
l-value 와 r-value 차이  (0) 2017.01.13
동적영역과 정적영역의 차이  (0) 2017.01.12
Posted by 황상두
, |

구조적 프로그래밍이란

하나의 입력에 하나의 출력만 있는 형태의 프로그램 구조를 뜻한다.

만약 goto문을 사용한다면 하나의 출력형태만 존재하지 않는다.


단락회로?

예를 하나 들어보자!

if(i < 5 && j > 1000)

.

.

.

이때 i가 5보다 작다면

j가 1000보다 큰지 연산하지도 않고 다음줄로 넘어간다.

'공부 > 프로그래밍' 카테고리의 다른 글

논리형 프로그래밍(?)  (0) 2017.01.14
함수형 프로그래밍(?)  (0) 2017.01.14
l-value 와 r-value 차이  (0) 2017.01.13
동적영역과 정적영역의 차이  (0) 2017.01.12
프로그래밍 언어론 시작!!  (0) 2017.01.12
Posted by 황상두
, |

l-value 와 r-value

그냥 직관적으로 왼쪽값오른쪽값이라는 생각이든다.

int a = 3;

a는 l-value , 3은 r-value 뭐 이런느낌이다.

둘의 차이는 다른 라인에서 참조할 수있는가이다.(참조여부)



연산값은 R-value다.

a + 1 = 3;(X) // a + 1 은 R-value다.


그러나 단항연산자는 괜찮다.

a++ = 3;


int n = 3;

int *p = &n (O)

&n = p;(X)

&n은 R-value다. P는 l-Value다.


함수에서 리턴값은 임시객체다. 그러므로 R-value다.

그러나 반환형이 참조형이면 L-value다.

http://jeremyko.blogspot.kr/2012/08/lvalue-rvalue.html

여기 정말 좋다. 여기서 보자!




'공부 > 프로그래밍' 카테고리의 다른 글

논리형 프로그래밍(?)  (0) 2017.01.14
함수형 프로그래밍(?)  (0) 2017.01.14
식과 제어문  (0) 2017.01.14
동적영역과 정적영역의 차이  (0) 2017.01.12
프로그래밍 언어론 시작!!  (0) 2017.01.12
Posted by 황상두
, |

최근에 달린 댓글

글 보관함