저급 언어는 고급 언어의 반대일까요?

gurugio의 이미지

아래처럼 find 기능을 하는 2개의 함수를 만들었습니다.
그런데 시작 반복자와 종료 반복자를 비교하는 부분을
!= 로 하느냐, <= 로 하느냐에 따라 결과가 조금 다릅니다.

저는 C외에 다른 언어는 자바와 C++ 수업을 4~5년전 한학기 들어본것밖에 없습니다.
그때는 거의 기본 문법과 클래스 사용법만 배웠고
요즘들어 혼자 공부하면서 STL와 제너릭 프로그래밍 개념을 보고 있습니다.

C를 몇년 쓰면서 익숙해진 덕분인지 반복자를 보면 포인터와 다른게 없구나 하는 생각이 들면서
개념적으로 이해가 쉬웠습니다. 그 외에 다른 개념들도 컴파일러가 이렇게 저렇게
소스 코드를 변환해서 결국 C를 낳고 C는 어셈블리를 낳고.. 이런 생각이 듭니다.

C를 처음 배울때도 어셈블리를 이미 알고 있는 상태였으므로
포인터나 배열 등의 개념이나 사용법을 배우는데 비교적 빨랐던것 같습니다.

어셈러브를 운영하면서
어셈러브를 계속 운영할 필요가 있을까
그냥 이름을 바꾸고 내 개인 홈피로만 운영해도 마찬가지 아닐까
어셈블리는 나도 안쓰는데.. 이런 생각을 계속 해왔는데요
얼마전 같이 어셈러브를 운영하는 형님께서
어셈블리를 조금이라도 아는 개발자가 한국에 많으면 많을 수록
국가 기술력에 도움이 된다면 어셈러브의 가치가 거기 있는게 아닐까 하는 대화를 했습니다.

사실 임베디드 환경이 아니라면 어셈블리나 C와 같은 저급? 언어는 안쓰는 경우가 많습니다만
그래도 알아두면 뭐가 다르긴 다르지 않을까요?

대뜸 어셈러브 개편했다고 광고하기가 뭐해서
마치 토론거리인양 포장해서 글을 올립니다 ;-)
어셈러브 아직 살아있어요~~

#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
 
template<class INPUT_ITER, class COMP_ITEM>
bool myfind_try(INPUT_ITER b, INPUT_ITER e, COMP_ITEM t)
{
	while (b != e) {
		if (*b == t)
			return true;
 
		++b;
	}
	return false;
}
 
template<class INPUT_ITER, class COMP_ITEM>
bool myfind_final(INPUT_ITER b, INPUT_ITER e, COMP_ITEM t)
{
	while (b < e) {
		if (*b == t)
			return true;
 
		++b;
	}
	return false;
}
 
 
 
 
int main(void)
{
	vector<string> st;
	st.push_back("aaa");
	st.push_back("bbb");
	st.push_back("ccc");
	st.push_back("ddd");
	st.push_back("eee");
 
	cout << "hello world" << endl;
 
	if (myfind_try(st.begin(), st.begin()-2, string("ddd")))
		cout << "This is shown, WHY?" << endl;
 
	if (myfind_final(st.begin(), st.begin()-2, string("ddd")))
		cout << "This is not shown" << endl;
 
	if (myfind_final(st.begin(), st.end()-1, string("ddd")))
		cout << "This is shown" << endl;
 
 
	return 0;
}

댓글

xyhan의 이미지

고급 언어라는것 자체가 저급 언어에 비해서 너무 쉬운감이 있지만...
그때 그 때 적응해 가야 한다는 단점이도 있지않을까요.. 자바가 고급 언어인지는 모르겠지만..
그 수많은 프레임워크들의 압박을 받아내야 하죠.. 물런 C & C++보다 쉬워서 조금 하면 적응하지만.. 말이죠..
저급언어를 잘하면.. 고급인력 아닌가요.. ㅋㅋ

============================================================

선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-

============================================================

============================================================

선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-

============================================================

semmal의 이미지

저급언어로 만든 프로그램은 동작이 빠르고, 고급언어는 프로그램을 빨리 만들어 볼 수 있지요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

M.W.Park의 이미지

추상화(abstraction) 수준에 따른 구분으로 상대적인 요소가 많이 작용할 겁니다.
C도 한때는 고급언어에 속했었죠. ^^;

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

wish의 이미지

기계의 관점에서 보면 저급 언어나 고급 언어나 처리 하는 방식은 유사할 수 밖에 없습니다.

중요한 건 사람이 볼 때 어떤 차이가 있는지 아닐까요...

sangheon의 이미지

관련이 있어보여 링크를 남깁니다.

http://kldp.org/node/76158

--

B/o/o/k/w/o/r/m/

--

Minimalist Programmer

gurugio의 이미지


그 글을 읽어보니 제가 의도하지 않은 낚시글을 올린게 아닌가 생각이 드네요 ;-)

어셈러브 홍보글이라고 생각해주세요~

----
세상을 바꾸는 것은 단 한 사람. 오직 하나님의 사람뿐이다.
http://www.asmlove.co.kr
http://blog.naver.com/gurugio

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.