PDA

View Full Version : مقایسه زبان C و Pascal از نظر سطح بندی



amiroffline
چهارشنبه 15 مهر 1383, 22:30 عصر
چرا زبان سی جزو زبانهای سطح میانی و پاسکال جزو زبانهای سطح بالاست

و همچنین سی چه مزیتهایی نسبت به پاسکال دارد که می گویند به زبان اسمبلی نزدیک است

ممنون

Anti_Evil
چهارشنبه 22 مهر 1383, 03:25 صبح
خوب فکر کنم کاملا زدی به ریشه !! D:
فکر کنم جواب این سوال رو بتونی به راحتی تو یکی از این کتاب های آموزش سی پیدا کنی، در هر حال در این وقت کم توضیحاتی در این باب خواهم داد ... باشد که مقبول بیفتد!!


چرا زبان سی جزو زبانهای سطح میانی و پاسکال جزو زبانهای سطح بالاست

با توجه به تعریف ساده و پایه ای زبان های سطح پائین و بالا نتیجه میگیریم: "زبانهای پاسکال، سی، فرترن و ... همگی زبانهای سطح بالا هستند".

به نظر من اتلاق اصطلاح "سطح میانی" به زبان سی تا حدود زیادی به هدف (و تا حدودی به سلیقه) نویسنده بر میگردد!

با توجه به نظر اغلب علما و با استناد به کتب مرجع به این نتیجه میرسیم که سی زبانی "سطح بالا" است. بزرگترین نشان آن هم کامپایلر سی است زیرا طبق تعریف پایه ای، زبانهای سطح بالا برای ترجمه شدن به زبان قابل فهم ماشین نیاز به مفسر دارند و همچنین زبانهای پاسکال و سی هر دو دارای Syntax خاص خودشان هستند و هزار و یک دلیل دیگر ...

در بسیاری از موارد منظور نویسنده و یا مدرس محترم (احمق!) از "زبان میانی" استفاده شدن از یک زبان در موارد خاص (برنامه های سیستمی) و یا اجرای کدهای اسمبلی از داخل برنامه است ... که اظهار نظری اشتباه است.

نتیجه: زبان سی نیز به مانند پاسکال زبانی سطح بالا است.

موفق باشید،
هادی

Inprise
چهارشنبه 22 مهر 1383, 07:54 صبح
سی چه مزیتهایی نسبت به پاسکال دارد که می گویند به زبان اسمبلی نزدیک است

الف - هیچی
ب- نزدیکی به اسمبلی معنای علمی ندارد . کامپایلرهای مختلف سی و پاسکال ، عموما" دسترسی به زبان اسمبلی را بصورت داخلی حمایت میکنند و اغلب بین این حمایت تفاوتی وجود ندارد .

Pars Giga
یک شنبه 15 خرداد 1384, 09:54 صبح
Cuhgd
بهترین زبان

parniyan2
یک شنبه 06 مرداد 1387, 15:10 عصر
دوستان عزیز زبان c++ جزو زبانهای سطح میانی است و قابلیت های بسیار زیادی نسبت به پاسکال دارد اما برنامه نوشتن با پاسکال راحت تره.

MOHSEN8000
یک شنبه 06 مرداد 1387, 22:50 عصر
نوشتن برنامه با پاسکال راحت تره ولی اصلا دو زبانی قابل مقایسه با هم هستن که کاربرد مشابه دارن. در حالی که پاسکال یه زبان آموزشی هست. و مثلا کار با C برای کار با سخت افزار خیلی راحت تر از پاسکال هست.
اینم مطلبی هست که من در مورد زبان های برنامه نویسی مختلف توی کتاب دایتل دیدم.


زبان های برنامه نویسی بر 3 نوع کلی هستند : 1. زبان ماشین ( که کلا تشکیل شده از 0 و 1 ) 2. زبان اسمبلی ( به جای بعضی از عملیات ها از کلمات کلیدی استفاده می گردد و برای ترجمه این زبان به ماشین ، از اسمبلر استفاده می شود.) 3. زبان های سطح بالا که از کلمات کلیدی زیاد تری استفاده می کند. و برای ترجمه این زبان به زبان ماشین از کامپایلر یا مفسر استفاده می شود. در اغلب موارد استفاده از کامپایلر باعث افزایش سرعت اجرای برنامه می شود ولی مفسر ها به درد محیط هایی می خورد که به طور مکرر با افزودن ویژگی های جدید به برنامه و تصحیح خطا ، برنامه باید دوباره اجرا شود.

++Hichkas
یک شنبه 06 مرداد 1387, 23:44 عصر
چرا زبان سی جزو زبانهای سطح میانی و پاسکال جزو زبانهای سطح بالاست

و همچنین سی چه مزیتهایی نسبت به پاسکال دارد که می گویند به زبان اسمبلی نزدیک است

ممنون
غلت میانی بودن زبان c این که ، از طرفی همانند زبان سطح پایینی مثل اسمبلی قادر است مستقیما به حافظه دستیابی داشته باشد و با مفاهیم بیت ، بایت و آدرس کار کند ، همچون زبان های سطح بالایی چون پاسکال از قابلیت خوانایی بالایی برخوردارند و به عبارت بهتر این زبان ، به زبان انسان شبیه است ، که این ویژگی مربوط به زبان های سطح بالاست .
فکر می کنم که در بالا به مزیت c با پاسکال اشاره کرده باشم .
اما پاسکال زبان خوبی برای شروع است ( برای کسی که تا به حال برنامه نویسی نکرده ) البته زبان های خانواده c دست برنامه نویس را خیلی باز گذاشته اند .
توصیه می کنم به کتاب c آقای جعفر نژاد یه سری بزنید ، چون مطلب بالا رو از اون نوشتم .
موفق باشید .

parniyan2
دوشنبه 07 مرداد 1387, 14:40 عصر
دوستان حالا که همگی از مهندسین برجسته سی و پاسکال هستید برای من سوالی پیش آمده که امیدوارم بتونیدراهنماییم کنید.
مشابه تابع () ord و ()chr در پاسکال که برای تبدیل کد اسکی به کاراکتر و بلعکس بکار می روند در زبان سی یا سی++ دستوری هست یا نه؟
ممنون اگه پاسخ بدید.

sasan_vm
دوشنبه 07 مرداد 1387, 15:59 عصر
در زبان C برای تبدیل نوع کاراکتر به اسکی و بالعکس نیازی به تابع نیست. در واقع هیچ فرقی بین نوع char و کد اسکی آن نیست.



int i;
char c;
c = 'A';
i = c; // i = 65
i = 66;
c = i; // c = 'B'