صفحه 3 از 9 اولاول 12345 ... آخرآخر
نمایش نتایج 81 تا 120 از 329

نام تاپیک: ساخت Compiler و یک زبان برنامه نویسی جدید

  1. #81
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نه ما متکی به API ویندوز نیستیم، یا به Interrupt خاص یا هر چیز دیگه ای.
    هر سیستمی API ها و Interrupt های خاص خودشو داره. ما یه تابع می نویسیم برای سیستم های مختلف که اگه Windows بود از فلان چیز استفاده کنه، اگه Linux بود از یه چیز دیگه... .
    یعنی این که نهایتا از چه چیزی استفاده شه به عهده ی کامپایلر هست بر اساس درخواست کاربر.
    حتی زبان ++C هم همین کارو می کنه.
    یعنی تو یه کد می نویسی و از توابع یکسانی استفاده می کنی، در صورتی که خروجی ها بر اساس کامپایلر ها در محیط های مختلف متفاوت هست.
    اگه می خوایم مثل ++C کار کنیم، پس باید یه روشی بذاریم که برنامه نویس اون روال، به کامپایلر بگه اگه برای این سیستم کامپایل می کنی این کد رو بزن، برای اون سیستم اون یکی کد رو بزن... مثل # در ++C که فقط با کامپایلر صحبت می کنه. مثلا فرض کن این طوری:

    #if system = DOS
    {
    ...
    int 21h
    }
    elseif system = Windows
    {
    ...
    WriteConsole ...
    }
    else
    {
    ...
    }


    که این if ها در زمان اجرا، اجرا نمی شن و در زمان Compile پردازششون به عهده ی Pre-Processor هست.

  2. #82
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

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

  3. #83
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    در ضمن به نظر من بهتر بود اول یه زبان پایه رو با دستورات اصلی بنا میزاشتیم و اگر تونستیم اون رو به اتمام برسونیم
    یعنی تحلیلگر نحوی و معنایی و دیگر مراحل کامپایلر رو که میتونه خیلی دشوار باشه رو پیاده کنیم, اونوقت میتونستیم به فکر
    توسعه زبان باشیم (تعریف نوع , استفاده از API , سرایند, کتابخانه,شی گرایی , برنامه نویسی گرافیکی ووووو......). چون اکثر زبانها هم یک چنین مسیری رو طی کردند.

  4. #84
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط amin32 مشاهده تاپیک
    ببین من فکر میکنم که فعلآ نباید بحث استفاده از توابع API مربوط به OS رو به میان میاوردی. ما باید یک ساختاری درست کنیم که برنامه نویس بتونه
    با ورودی خروجی (که شامل فایل هم میشه) کار کنه و لزومی نداره که کاربر در برنامه از توابع os استفاده کنه. به نظر من بهترین کار اینه که ما
    مثل سی تعریف توابع یا حتی فقط مشخصات توابع ورودی خروجی رو در یک فایل سرایند یا کتابخانه ذخیره کنیم و کاربر بتونه با به کار بردن این فایل
    از توابع ورودی خروجی استفاده کنه و این که در نهایت اجرای دستورات ورودی خروجی به چه شکل باشه بستگی به کامپایلر ما و کد ماشینی که در عقب بندی تولید میشه داره
    و لزومی نداره کاربر از اون مطلع باشه.
    خوب شما فرض کن ما بحث توابع و ...، رو از برنامه نویس بپوشونیم. حالا قراره این چیزا رو داخل یه فایل سرآیند قرار بدیم. اون فایل هم توابع و روال هایی داره که با زبان برنامه نویسی خودمون ساخته شدن. اون ها باید با چی ساخته می شدن؟ یعنی پایه ای ترین دستورات برای ساخت دستورات سطح بالاتر (کار با فایل و ورودی و خروجی متن و ...) چیان؟ مسلما دستورات Assembly هستن. زبان C رو هم اگه بدون فایل های سرآیندش در نظر بگیری، باز هم قابل استفادس، چون خود فایل های سرآیندش در نهایت با دستورات پایه ای تری نوشته شدن، که شما می تونی اونا رو داخل برنامه ی خودتم بنویسی. منم می گم این کارو کنیم. یعنی در ابتدا هیچ دستور خاصی برای زبان قرار ندیم (برعکس BASIC)، بلکه این قابلیت رو به برنامه نویس (کسی که فایل های سرآیند رو می نویسه یا هر کس دیگه ای) بدیم که این دستورات (نوشتن و خواندن و ...) رو بنویسه، با دستورات پایه ای تر زبان (مثل زبان C).

  5. #85
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    به نظر من ملزومات یک زبان برنامه نویسی تحت کنسول اینها هستند:

    ۱- ساختار تعریف متغیر
    ۲- ساختار تعریف توابع
    ۳- ساختار نحوی عملگرها و دستورات محاسباتی
    ۴- ساختارهای شرطی
    ۵- ساختار حلقه و تکرار


    و البته دستورات ورودی خروجی
    آخرین ویرایش به وسیله amin32 : چهارشنبه 05 بهمن 1390 در 23:52 عصر

  6. #86
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط amin32 مشاهده تاپیک
    در ضمن به نظر من بهتر بود اول یه زبان پایه رو با دستورات اصلی بنا میزاشتیم و اگر تونستیم اون رو به اتمام برسونیم
    یعنی تحلیلگر نحوی و معنایی و دیگر مراحل کامپایلر رو که میتونه خیلی دشوار باشه رو پیاده کنیم, اونوقت میتونستیم به فکر
    توسعه زبان باشیم (تعریف نوع , استفاده از API , سرایند, کتابخانه,شی گرایی , برنامه نویسی گرافیکی ووووو......). چون اکثر زبانها هم یک چنین مسیری رو طی کردند.
    قبول دارم که زبان ها اول اصلشون ساخته شده بعد توسعه پیدا کردن و مثلا فایل های سرآیند براشون نوشته شده. ولی این ساده تره که ما هیچ دستوری رو ننویسیم به طور پیش فرض، بلکه کاربر (مثلا موقع توسعه) خودش بیاد اون دستورات جورواجور رو تولید کنه. فقط کافیه مثل زبان C اجازه بدیم که کد Assembly بزنه.

  7. #87
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    و البته دستورات ورودی خروجی
    به جای این گزینه می شد گفت دستورات پایه.
    با دستورات پایه ای Assembly می شه دستورات ورودی و خروجی رو پیاده سازی کرد.
    دیگه این بستگی به سلیقه ی ما داره که دستورات پایه ای مون چیا باشن...

  8. #88
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    قبول دارم که زبان ها اول اصلشون ساخته شده بعد توسعه پیدا کردن و مثلا فایل های سرآیند براشون نوشته شده. ولی این ساده تره که ما هیچ دستوری رو ننویسیم به طور پیش فرض، بلکه کاربر (مثلا موقع توسعه) خودش بیاد اون دستورات جورواجور رو تولید کنه. فقط کافیه مثل زبان C اجازه بدیم که کد Assembly بزنه.
    من که هر چقدر توی فایلهای سرایند پر استفاده زبان سی گشتم دستور اسمبلی ندیدم و بیشتر تعریف مشخصات توابع. البته مطمعن نیستم.
    ولی فکر میکنم بیشتر دستورات اسمبلی در مواقعی به کار میاد که نشه از دستورات زبان استفاده کرد. مثل وقتی که بحث ساخت کرنل به میان میاد. باید بیشتر تحقیق کرد.
    وای برم که بازی تیمم شروع شد. انشاالله که این دفعه رو میبریم....

  9. #89
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    در پوشه ی Include خوب بگردی پیدا می کنی.
    البته چون اکثرشون به هم دیگه پاس می دن (کدوم تیم؟ ) کم تر دستورات Assembly می بینی. ولی برای نمونه، آخر این header file رو نگاه کن:

    // --aclcls.h------------------------------------------------------------------
    //
    // Interface to library: aclcls.
    //
    // Copyright 1986 - 1998 Microsoft Corporation. All rights reserved.
    //
    // ----------------------------------------------------------------------------

    #if !defined(_ACLCLS_H_)
    #define _ACLCLS_H_


    // $$--IExchangeFolderACLs-----------------------------------------------------
    //
    // Definition of interface for folder ACLs class CFolderACLs.
    //
    // ----------------------------------------------------------------------------

    #undef INTERFACE
    #define INTERFACE IExchangeFolderACLs

    // Manifest for cursor position indicating we are at the end of the ACLs table.

    #define ACL_PAST_END ((LONG) -1)


    // Special ACL positions. The special ACL's at these position may not be
    // deleted, and there are also special rules (coming from Exchange) with
    // regard to how rights will be modified. Also, other ACL's may not be inserted
    // at these positions.

    #define ACL_POS_DEFAULT ((LONG) 0)
    #define ACL_POS_CREATOR ((LONG) 1)

    DECLARE_INTERFACE_(IExchangeFolderACLs, IUnknown)
    {
    #ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */

    STDMETHOD(QueryInterface)(
    THIS_
    REFIID riid,
    LPVOID FAR * ppvObj
    ) PURE;

    STDMETHOD_(ULONG, AddRef)(
    THIS
    ) PURE;

    STDMETHOD_(ULONG, Release)(
    THIS
    ) PURE;

    #endif

    /* IExchangeFolderACLs methods */

    STDMETHOD(HrDelete)(
    THIS
    ) PURE;

    STDMETHOD(HrGet)(
    THIS_
    LPLONG lplRights,
    LPSTR FAR * lppszDisplayName,
    ULONG FAR * lpcbentryid,
    LPENTRYID FAR * lppentryid
    ) PURE;

    STDMETHOD(HrInsert)(
    THIS_
    LONG lRights,
    LPSTR lpszDisplayName,
    ULONG cbentryid,
    LPENTRYID lpentryid,
    LPLONG lplRights
    ) PURE;

    STDMETHOD(HrModify)(
    THIS_
    LONG lRights,
    LPLONG lplRights
    ) PURE;

    STDMETHOD(HrSeek)(
    THIS_
    LONG lPos
    ) PURE;

    STDMETHOD(HrTell)(
    THIS_
    LPLONG lplPos
    ) PURE;
    };

    // $$--LPFOLDERACLS------------------------------------------------------------
    //
    // Pointer to IExchangeFolderACLs interface.
    //
    // ----------------------------------------------------------------------------

    typedef IExchangeFolderACLs FAR * LPFOLDERACLS;

    //
    // Helper functions defined in module ACLCLS.
    //

    // $--HrFolderACLsOpen---------------------------------------------------------
    //
    // DESCRIPTION: Get a pointer to an object which implements the
    // IExchangeFolderACLs interface defined in aclcls.h.
    //
    // INPUT:
    //
    // [lpSession] -- Pointer to MAPI session.
    // [lpMDB] -- Pointer to message store containing folder.
    // [cbentryid] -- Number of bytes in folder's entry identifier.
    // [lpentryid] -- Folder's entry identifier.
    //
    // OUTPUT:
    //
    // [lppFolderACLs] -- Pointer to object which supports interface.
    // NULL if none.
    //
    // RETURNS: NOERROR if successful;
    // E_INVALIDARG if bad input;
    // E_OUTOFMEMORY if not enough memory;
    // E_NOINTERFACE if acl table does not exist on folder;
    // E_FAIL otherwise.
    //
    //-----------------------------------------------------------------------------

    STDAPI
    HrFolderACLsOpen( // RETURNS: HRESULT
    IN LPMAPISESSION lpSession, // MAPI session pointer
    IN LPMDB lpMDB, // MAPI MDB store ptr
    IN ULONG cbentryid, // # bytes in entry ID
    IN LPENTRYID lpentryid, // entry ID ptr
    OUT LPFOLDERACLS FAR * lppFolderACLs // IExchangeFolderACLs ptr ptr
    );

    #endif

  10. #90
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    ۱- ساختار تعریف متغیر
    ۲- ساختار تعریف توابع
    ۳- ساختار نحوی عملگرها و دستورات محاسباتی
    ۴- ساختارهای شرطی
    ۵- ساختار حلقه و تکرار
    1 و 2 رو تا یه حدودایی مشخص کردیم.
    در مورد 3،
    مثلا اینو ببین:
    f : Boolean
    a : Integer = 13
    b : Integer = 33
    f = (a = b)? ' = true
    f = Not (a > b)? ' = not false =true
    f = (a < b and b = a)? ' = false

  11. #91
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    فکر کنم دیگه باختیم...

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    1 و 2 رو تا یه حدودایی مشخص کردیم.
    در مورد 3،
    مثلا اینو ببین:
    f : Boolean
    a : Integer = 13
    b : Integer = 33
    f = (a = b)? ' = true
    f = Not (a > b)? ' = not false =true
    f = (a < b and b = a)? ' = false
    خب در مورد عملگرها و دستورات هم قبلآ تا حدودی صحبت شد.
    اما در مورد دستورات شرطی نظرم اینه:


    if (i>10):
    i=i+1
    end if

  12. #92
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    بیش تر Symbol ها هستن که تو ++C دست و پا گیرن، به نظرم ساختار if زبان BASIC یکی از بهترین ساختار ها هست. (ببخشید این قدر مخالفت می کنما ولی... دیگه دیگه...)

    ' Simple If Structure
    If Statement Then Beep()

    ' Complete If Structure
    If Statement1 Then

    ElseIf Statement2 Then

    ElseIf Statement3 Then

    Else

    End If


    حالا می تونیم اینو کامل ترش کنیم البته اگه بشه.
    آخرین ویرایش به وسیله IamOverlord : پنج شنبه 06 بهمن 1390 در 02:00 صبح

  13. #93
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نه پشیمون شدم! به خاطر یکپارچگی با ?(...) ، بهتره از If (...) Then استفاده کنیم نه If ... Then.


    نقل قول نوشته شده توسط amin32 مشاهده تاپیک
    فکر کنم دیگه باختیم...

    من فکر کردم پروژه رو می گی...!
    آخرین ویرایش به وسیله IamOverlord : پنج شنبه 06 بهمن 1390 در 02:11 صبح

  14. #94
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    بیش تر Symbol ها هستن که تو ++C دست و پا گیرن، به نظرم ساختار if زبان BASIC یکی از بهترین ساختار ها هست. (ببخشید این قدر مخالفت می کنما ولی... دیگه دیگه...)

    ' Simple If Structure
    If Statement Then Beep()

    ' Complete If Structure
    If Statement1 Then

    ElseIf Statement2 Then

    ElseIf Statement3 Then

    Else

    End If


    حالا می تونیم اینو کامل ترش کنیم البته اگه بشه.
    این یکم زیادی شبیه خود بیسیک نشده؟ اگه دقت کنی پیشنهاد منم تقریبآ همین بود با این تفاوت که بجای then از ':' استفاده کنیم.

  15. #95
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    من تا جایی که دیدم زبان های دیگه ای هم هستن که ساختارشون مثل اینه (این قدر ساختار توپیه!)؛
    مثلا این جا رو حتما ببین برای Ada هست.
    این جا هم برای Fortran هست.
    تازه، می ریم جلو زبان ساخته می شه انشاا... ، بعد بر می گردیم دوباره یه تغییرات جزئی روی Syntax می دیم و اگه ایده ی جدید و بهتری داشتیم پیاده می کنیم.

  16. #96
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    من تا جایی که دیدم زبان های دیگه ای هم هستن که ساختارشون مثل اینه (این قدر ساختار توپیه!)؛
    مثلا این جا رو حتما ببین برای Ada هست.
    این جا هم برای Fortran هست.
    تازه، می ریم جلو زبان ساخته می شه انشاا... ، بعد بر می گردیم دوباره یه تغییرات جزئی روی Syntax می دیم و اگه ایده ی جدید و بهتری داشتیم پیاده می کنیم.

    من فقط نظرم این بود که به جای then از یه لغت یا علامت دیگه استفاده بشه. ولی اشکالی نداره اگه اینطوری می خوای با همین پیش میریم.

  17. #97
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    ساختار های غیر از if چی؟
    اگه بشه یه جوری همشون رو یکپارچه و منظم کرد خیلی خوب می شه...

  18. #98
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    به خودم امیدوار شدم.فکر میکردم فقط من اینقدر بیخوابم.

    خب تا منظورت از یکپارچگی چی باشه؟

  19. #99
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    ساختار Select Case چه طور باشه؟

    ' halqeye bi nahayat:
    Do

    Loop

    ' sakhtare while
    While (...) Do

    Loop


    ' sakhtare until
    Until (...) Do

    Loop

    ' sakhtare for e sade
    For i : 1 To 10 Do

    Loop

    ' sakhtare for ba step
    For i : 10 To 1 Step -1 Do

    Loop

    ' sakhtare select
    Select ...
    Case ...

    Case ...

    Case Else

    End Select

  20. #100
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    منظورم از یکپارچگی همون ساختار Do Loop پست بالا هست. اگه دقت کنی ساختار های For، While و Until کامل شده ی Do Loop هستند.
    یه سوالی: می تونیم در زبانمون یه مفهومی به نام مجموعه تعریف کنیم و For رو به اون ربط بدیم؟ (برای یکپارچگی بیشتر! )

  21. #101
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    منظورم از یکپارچگی همون ساختار Do Loop پست بالا هست. اگه دقت کنی ساختار های For، While و Until کامل شده ی Do Loop هستند.

    خوب اگه منظورت این باشه , باید بگم که این به فکر بیشتری نیاز داره.

  22. #102
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    آها، یه مسئله ای:
    بیرون اومدن از ساختار های For، While و ... ؟
    (یکپارچه!)

  23. #103
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    اگه منظورت از بیرون اومدن دستوری مثل exit for هست , من میگم که یکپارچه باشه

  24. #104
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    باشه. ضمنا یه مزیتی که ++C داره این هست که می شه در ساختار Switch اش تعیین کرد که همه ی Case ها رو بررسی کنه یا این که از فلان Case به بعد در صورت برقراری دیگه بررسی نکنه. می خوام این قابلیت رو ما هم بذاریم. در کل می خوام یه سری از ویژگی های خوب زبان ++C رو بذاریم.

  25. #105
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    باشه. ضمنا یه مزیتی که ++C داره این هست که می شه در ساختار Switch اش تعیین کرد که همه ی Case ها رو بررسی کنه یا این که از فلان Case به بعد در صورت برقراری دیگه بررسی نکنه. می خوام این قابلیت رو ما هم بذاریم. در کل می خوام یه سری از ویژگی های خوب زبان ++C رو بذاریم.
    همون قضیه دستور break دیگه. آره فکر خوبیه.

    صبح شد

  26. #106
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    فقط یه نکته ای. چون من دانشجو هستم فقط تا همین یک ماه آینده وقت آزاد دارم و بعد اون
    با عرض شرمندگی وقتم محدودتر میشه. اینو گفتم که در جریان باشید تا یکم زودتر به پیاده سازی بپردازیم.

  27. #107
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید


    پس Break روی اینا تاثیر بذاره:
    - ساختار Select
    - ساختار Do Loop کلا، که شامل For، While و ... می شه.

    اما مثالی از روش کار:

    Break 3


    که می گه 3 بار Break کن پشت سر هم.
    به جای 3 اگه عدد ثابت بذاره که مشکلی نیست ولی اگه متغیر بذاره . پس متغیر نذاره. اصلا واسه چی بذاره؟ کاربرد زیادی نداره. زبان های دیگه هم یادم نمی آد که همچین امکانی رو برای متغیر گذاشتن، در نظر گرفته باشن. می تونه از Goto استفاده کنه، یا همون Jump در Assembly. ببین اگه کد Assembly بدون Block و از این حرفا نوشته می شه، دستور Jump به تنهایی به کارش می آد و لازم نیست دوباره Goto رو تعریف کنیم.

  28. #108
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    در مورد اسمبلی یه مشکل بزرگ رو در نظر نگرفتی. اگه زبان ما از اسمبلی به شکل inline استفاده کنه , اونوقت باید ساختار لغوی و نحوی زبان اسمبلی رو هم پیاده سازی کنیم !!!!!!!!
    یعنی دو تا زبان که خیلی پیچیده میشه. به این دلیله که میگم این مسائل رو بزاریم برای مرحله توسعه زبان.

  29. #109
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک

    پس Break روی اینا تاثیر بذاره:
    - ساختار Select
    - ساختار Do Loop کلا، که شامل For، While و ... می شه.
    آره. البته لزومی نداره که از همه این دستورات و با همین ساختار لغوی استفاده بشه و بهتر که دنبال یه ساختار جدیدتر یا با لغاتی متفاوت باشیم (منظورم از لغت مثلا کلمه loop یا کلمات دیگه هست)

  30. #110
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط amin32 مشاهده تاپیک
    در مورد اسمبلی یه مشکل بزرگ رو در نظر نگرفتی. اگه زبان ما از اسمبلی به شکل inline استفاده کنه , اونوقت باید ساختار لغوی و نحوی زبان اسمبلی رو هم پیاده سازی کنیم !!!!!!!!
    یعنی دو تا زبان که خیلی پیچیده میشه. به این دلیله که میگم این مسائل رو بزاریم برای مرحله توسعه زبان.
    نه ما دستورات Assembly رو بدون هیچ پردازشی (یا با حداقل پردازش ممکن!) می دیم به Assembler مشکلی نداره... ضمنا دستورات Assembly تجزیه و تحلیل پیچیده ای برای Compiler ندارن...

  31. #111
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    0- دستورات Assembly
    ۱- ساختار تعریف متغیر
    ۲- ساختار تعریف توابع
    ۳- ساختار نحوی عملگرها و دستورات محاسباتی
    ۴- ساختارهای شرطی
    ۵- ساختار حلقه و تکرار
    4 و 5 ارتباط نزدیکی با هم دارن، به خاطر همین می گم یکپارچه باشن.
    While/Until
    Select Case
    For
    If
    و ... ؟



    چه قدر تاپیک خلوته، ای کاش بقیه هم مشارکت کنن...!

  32. #112
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    برای Dynamic Allocation هم فهمیدم باید چی کار کنیم!!! می تونی یه جست و جویی در مورد Heap Allocation و ... بکنی. این جا رو ببین.

  33. #113
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    نه ما دستورات Assembly رو بدون هیچ پردازشی (یا با حداقل پردازش ممکن!) می دیم به Assembler مشکلی نداره... ضمنا دستورات Assembly تجزیه و تحلیل پیچیده ای برای Compiler ندارن...
    ببین , وقتی داری به هر ایده فکر میکنی باید به فکر پیاده سازی هم باشی. یکی از کارای مهم کامپایلر تشخیص خطاهای لغوی و نحویه. ok ؟ خوب به نظر تو وقتی تحلیلگر ما به ساختار نحوی یک دستور اسمبلی برخورد کرد باید چه رفتاری داشته باشه.از کجا بفهمه این یه یه دستور اشتباه نیست و دستور اسمبلی هست ؟ خوب یه راه حل اینه که دستورات اسمبلی رو داخل یه جور بلاک خاص قرار بدیم (مثل کامپایلرهای دیگه) و وقتی که تحلیلگر به این بلاک برخورد کرد اونو مستقیمآ به اسمبلر بفرسته!). اما باز به نظر من این کار منطقی نیست چون فرض کن اگه دستور اسمبلی اشتباه باشه دیگه ما تونایی تشخیص نوع و محل خطا رو نداریم.

  34. #114
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    خوب Assembler و Linker در مرحله ی بعد خطا ها رو گزارش می کنن...
    ضمنا Instuction های Assembly ساختار ساده ای دارن، یا عملوند ندارن، یا یه دونه دارن یا دو تا، بدون هیچ ساختار پیچیده یا عجیب و غریب خاصی...

  35. #115
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    خوب Assembler و Linker در مرحله ی بعد خطا ها رو گزارش می کنن...
    ضمنا Instuction های Assembly ساختار ساده ای دارن، یا عملوند ندارن، یا یه دونه دارن یا دو تا، بدون هیچ ساختار پیچیده یا عجیب و غریب خاصی...
    در مورد اولی که گفتی, مجبوریم که اسمبلر رو با کامپایلر یکپارچه کنیم. و در کدش هم دست ببریم.که دردسرهای خاص خودش رو داره.
    در مورد دومی هم فقط مساله ساختار نحوی نیست بلکه باید دستورات زبان و انواع ثبات رو بررسی کنه. شاید به نظر اینا ساده بیاد ولی وقتی دارم تصور میکنم که تحلیلگرهایی که براشون کد مینویسم باید از اسمبلی هم حمایت کنند, کارو خیلی سخت میبینم. منطقی باش ما تجربه بورلند رو نداریم!

  36. #116
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    باشه،
    اگه می خوای اینو می ذاریم واسه بعد...
    برای برنامه های Windows کاربر حتما باید بتونه API تعریف کنه یا بالاخره ما باید براش تعریف کنیم...
    چی کار کنیم؟ روش تعریف چی باشه؟

  37. #117
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    باشه،
    اگه می خوای اینو می ذاریم واسه بعد...
    برای برنامه های Windows کاربر حتما باید بتونه API تعریف کنه یا بالاخره ما باید براش تعریف کنیم...
    چی کار کنیم؟ روش تعریف چی باشه؟

    من الان حضور ذهن ندارم. میشه بگی مثلا چه توابعی در برنامه نویسی کنسول میتونه مورد استفاده باشه. خوب توابع مربوط به گرافیک و کنترل ها که اصلا کاربردی نداره. خوب دیگه چی میتونه مورد استفاده برنامه نویس باشه.(از بس دیگه با ویندوز کار نکردم توابعش یادم رفت)

  38. #118
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    اونایی که تو پست 75 گذاشتم.

  39. #119
    کاربر دائمی آواتار amin32
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    !SolarSystem>Earth>Persia>North
    پست
    304

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    خوب یه چیزایی یادم اومد
    مثلا توابع مربوط به اطلاعات دیسک که راه دیگه ای به غیر از استفاده از Api نیست. با این حساب باید کاربر بتونه از api استفاده کنه.
    پس باید یه ساختار براش پیدا کنیم.

  40. #120
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: ساخت Compiler و یک زبان برنامه نویسی جدید

    این روش رو ببین قبول داری:
    Import Function “DeleteDC” From “GDI32.DLL” As DelDC (ByVal hdc : Long) : Long

صفحه 3 از 9 اولاول 12345 ... آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •