Пишу компилятор ЯВУ

High-level languages programming questions
  • О компиляторе:
    Компилятор пишется на паскале. Работает под Windows. Генерирует ассемблерный листинг для fasm'а. После компиляции ассемблером получается программа которая будет работать под MenuetOS/KolibriOS. В планах переписание компилятора на свой язык и перенос в МеОС.
    Пока не все реализировано и то что есть еще глючит. Сам компилятор выложу недели через две.
  • Жду Ваших замечаний, советов, вопросов...
  • А ихде оператор присваивания?
  • Уже есть :)
  • с типами какято путаница (может быть я один чегото недопонимаю),зачем куча однотипных стандартных типов
    имхо int = word
    long = dword
  • int - это 2-х байтное целое со знаком, word - без знака
    long - это 4-х байтное целое со знаком, dword - без знака
  • По желанию тех, кто был на канале #meos, типы будут теперь такими:

    short - 1но байтное целое со знаком
    ushort - 1но байтное целое без знака
    int - 2х байтное целое со знаком
    uint - 2х байтное целое без знака
    long - 4х байтное целое со знаком
    ulong - 4х байтное целое без знака
  • 2 Andryuha:
    Не вижу смысла использовать сишные имена типов, но при этом не соблюдать их стандартный (т.е. сишный) размер. Тогда уже лучше назвать типы иначе: byte, ubyte, word, uword, dword, udword. Или ещё привычнее: sbyte, byte, sword, word, sdword, dword.
  • byte по моему разумению и так обычно беззнаковый,как и dword
    imho названия грамотные и куда понятней чем sword/word...
    И кто сказал что это сишные имена? Сходство есть,но это ничего не значит
  • а как переменные в ассемблерных вставках использовать?
  • Теоретически идентификатор это только ассемблерный указатель
    Так как компилер генерит (или будет генерить) асм-листинг там будет видно как названа конкретная переменная
    ..и я думаю что во вставках их можно импользовать под теми же именами
  • Хотя в таком случае возникает вопрос: как в разных функциях будут использоваться идентификаторы с одинаковыми именами
  • а модули, библиотеки или include есть?
  • 2 Victor:
    byte по моему разумению и так обычно беззнаковый
    Если подразумевается термин "байт", то по определению он не является ни знаковым, ни беззнаковым. Определение можно посмотреть в любой классике. Если же Вы имеете в виду тип переменной "byte", то можно провести аналогию с сишным типом "char", который может быть знаковым или беззнаковым, в зависимости от соглашения по умолчанию, если не указан префикс signed/unsigned. Тип "Byte" есть в Паскале и Бейсике и является беззнаковым, но пишется с большой буквы - опять мимо. Если подразумевается какой-то экзотический язык, то так бы и написали.
    imho названия грамотные и куда понятней чем sword/word
    Критерий грамотности и понятности? Тут банального "imho" маловато будет, т.к. язык разрабатывается не для одного единственного пользователя, как я понял.
    И кто сказал что это сишные имена? Сходство есть,но это ничего не значит
    Хорошо, для Вас это ничего не значит. Для программистов, владеющих С, коих достаточно много, это имеет значение. Представьте, что при изучении иностранного языка вам говорят, что есть слово "яблок", но оно означает не яблок, а грушу.
  • Who is online

    Users browsing this forum: No registered users and 13 guests