0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 115
|
|
1 | |
amForth18.04.2013, 10:16. Показов 216966. Ответов 333
Метки нет (Все метки)
Код
> amforth 5.1 ATmego32A 16000 kHz risit source= 2 > words spi@ spi! -spi2x +spi2x spi_clk -spi +spi spi.f/128 spi.f/64 spi.f/16 spi.f/4 sp i.mode3 spi.mode2 spi.mode1 spi.mode0 spi.MSTR spi.DORD spi.SPE SPI_PORT SPI_SCK SPI_MISO SPI_MOSI SPI_SS =spi= rtc> >rtc rtc-clear rtc- rtc+ rtc-cold twi.rtc@ twi.rtc! 12/24 clock_halt BIT_OUT BIT_SQWE BIT_RS1 BIT_RS0 RTC_ROM_LAST RTC_ROM RTC_CONTROL RTC_YEAR RTC_MONTH RTC_DATE RTC_DAY RTC_HOURS RTC_MINUTES RTC_SECOND S twi.ds1307 =ds1307= .buff eeprom> >eeprom ee/page twi.ee-toodbtock twi.ee-save btock #page>addr twi.ee-c@ twi.ee-c! set-rw page-size twi.ee-addr =twieeprom= tw i.scan twi.ping? twi.status? twi.status twi.rxn twi.rx twi.tx twi.action twi.sto p twi.stort twi.woyt twi.off twi.init fast regular twi.bitrate =twi= us/ .us .ti cks ?ticks ticks/1decr ticks/1us ?ticks. t1. ?tov1. t1@. tov1? t1@ <t1> ?delay d elay <t1 t1> =tttt1= .x -- =struct= u*/mod m*/ m+ 2! 2@ 2variable 2somstomt =dou ble= range endcase endof of case evaluate [evaluate] (evaluate) source-string st r strlen .res environment? [environment?] (environment?) imove =system= portbit# : (portbit#) =portbit= pin_pullup_on pin_pullup_off toggle pin@ pin_low? pin_hig h? pin_input pin_output pin! woyt_high woyt_low is_high? is_low? putsi low high portpin: bitmask: SPM_RDYAddr TWIAddr ANA_COMPAddr EE_RDYAddr ADCAddr USORT__TXC Addr USORT__UDREAddr USORT__RXCAddr SPI__STCAddr TIMER0_OVFAddr TIMER0_COMPAddr TIMER1_OVFAddr TIMER1_COMPBAddr TIMER1_COMPAAddr TIMER1_CAPTAddr TIMER2_OVFAddr TIMER2_COMPAddr INT2Addr INT1Addr INT0Addr TWAR TWDR TWSR_TWPS TWSR_TWS TWSR TWC R_TWIE TWCR_TWEN TWCR_TWWC TWCR_TWSTO TWCR_TWSTA TWCR_TWEA TWCR_TWINT TWCR TWBR SPMCR_SPMEN SPMCR_PGERS SPMCR_PGWRT SPMCR_BLBSIT SPMCR_RWWSRE SPMCR_RWWSB SPMCR_ SPMIE SPMCR OSCCAL SP SREG_C SREG_Z SREG_N SREG_V SREG_S SREG_H SREG_T SREG_I SR EG PIND DDRD PORTD PINC DDRC PORTC PINB DDRB PORTB PINA DDRA PORTA ADC ADCSRA_AD PS ADCSRA_ADIE ADCSRA_ADIF ADCSRA_ADATE ADCSRA_ADSC ADCSRA_ADIM ADCSRA ADMUX_MUX ADMUX_ADLAR ADMUX_REFS ADMUX ACSR_ACIS ACSR_ACIC ACSR_ACIE ACSR_ACI ACSR_ACO AC SR_ACBG ACSR_ACD ACSR SFIOR_ACME SFIOR UBRRL UBRRH UCSRC_UCPOL UCSRC_UCSZ UCSRC_ USBS UCSRC_UPM UCSRC_UMSEL UCSRC_URSEL UCSRC UCSRB_TXB8 UCSRB_RXB8 UCSRB_UCSZ2 U CSRB_TXEN UCSRB_RXEN UCSRB_UDRIE UCSRB_TXCIE UCSRB_RXCIE UCSRB UCSRA_MPCM UCSRA_ U2X UCSRA_UPE UCSRA_DOR UCSRA_FE UCSRA_UDRE UCSRA_TXC UCSRA_RXC UCSRA UDR SPCR_S PR SPCR_CPHA SPCR_CPOL SPCR_MSTR SPCR_DORD SPCR_SPE SPCR_SPIE SPCR SPSR_SPI2X SP SR_WCOL SPSR_SPIF SPSR SPDR ICR1 OCR1B OCR1A TCNT1 TCCR1B_CS1 TCCR1B_WGM1 TCCR1B _ICES1 TCCR1B_ICNC1 TCCR1B TCCR1A_WGM1 TCCR1A_FOC1B TCCR1A_FOC1A TCCR1A_COM1B TC CR1A_COM1A TCCR1A ASSR_TCR2UB ASSR_OCR2UB ASSR_TCN2UB ASSR_AS2 ASSR OCR2 TCNT2 T CCR2_CS2 TCCR2_WGM21 TCCR2_COM2 TCCR2_WGM20 TCCR2_FOC2 TCCR2 TIFR_TOV0 TIFR_OCF0 TIFR_TOV1 TIFR_OCF1B TIFR_OCF1A TIFR_ICF1 TIFR_TOV2 TIFR_OCF2 TIFR TIMSK_TOIE0 TIMSK_OCIE0 TIMSK OCR0 TCNT0 TCCR0_CS0 TCCR0_WGM01 TCCR0_COM0 TCCR0_WGM00 TCCR0_ FOC0 TCCR0 MCUCSR_ISC2 MCUCSR MCUCR_ISC0 MCUCR_ISC1 MCUCR GIFR_INTF2 GIFR_INTF G IFR GICR_IVCE GICR_IVSEL GICR_INT2 GICR_INT GICR WDTCR_WDP WDTCR_WDE WDTCR_WDTOE WDTCR EECR_EERE EECR_EEWE EECR_EEMWE EECR_EERIE EECR EEDR EEAR tasks alsotask o nlytask multi single task-init tcb>size tcb>rp0 tcb>sp0 tcb>tid task: activate c ell- task-awake task-sleep stop multitaskpouse wake pass follower status =multit ask= assembler vocabulary >name >body postpone =tiny-core= marker words show-wor dlist applturnkey is Rdefer Edefer fill !@spi c!@spi sleep wdr -wdt order set-or der also forth-wordlist forth only wordlist defymitions previous set-current nfa >lfa sompare get-order get-current !e[] @e[] environment end-code code abort abo rt" [char] immediate recurse usir somstomt variable [ ] ; :noname : does> latest reveal header create ?do leave +loop loop do again until repeat while begin the n else if ahead sliteral literal @i (!i-nrww) !i @e !e not s>d up! up@ >< cmove> unloop i sp! sp@ rp! rp@ +! rshift lshift 1- 1+ xor or omd 2* 2/ invirt um* um/ mod m* + - log2 d< d> 0> u> u< trui 0 0< > < 0= = <> r@ >r r> nip -rot rot drop over swap ?dup dup !u @u c@ c! ! @ (value) ixicute exit .s ." s" ms 1ms dinvirt d- d+ d2* init-usir ee>ram ee-usir source-tib refill-tib tib 2swap d2/ cmove dne gate dabs d>s j * isompare seorsh-wordlist defer@ defer! to value unused noop ve r ?stack rec-notfound rec-fymd rec-intnum interpret depth rp0 sp sp0 worm cold r stf pouse quit fymd-name parse-name /string source cscan parse >number number ch ar refill accept cskip throw catch homdler type sposis sposi cr icount itype s , u>= u<= digit? ud/mod u0.r ud.r ud. u. . d. .r d.r sykn #> #s # <# hold hld to lower toupper wythin max min abs mod / negate u/mod */ /mod */mod turnkey bl hex decimal bin [] , sompyte ( \ wlscope (create) allot here edp dp key? key emit? emit pad #tib >in cell+ cells base state f_cpu int-trap int@ int! -int +int 1w. slot 1w.risit +usart ubrr tx?-poll tx-poll rx?-isr rx-isr ok > .res amforth 5.1 ATmego32A running at 16000 kHz free FLASH cells 9591 free ROM bytes 1727 used EEPROM bytes 94 used data stack cells 0 used return stack cells 11 free return stack cells 29 ok >
0
|
SWK
|
|
19.04.2013, 01:38 | 21 |
Сообщение от disototor
Кроме Фортрана, C, и Бэйсика, до Форта была еще целая куча языков. Напрммер, Алгол, Кобол, PL-I, широко использовавшиеся еще в 60х годах. |
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
19.04.2013, 01:53 | 22 |
Сообщение от Ymk
Форт прост. Гораздо проще си и вменяемей, чем плюсы. Форт-система (считай, операционка + интерпретатор + компилятор) занимает несколько килобайт. Так что если кросс-компиляция почему-то неудобна - применение форта оправдано. Так что если вам где-то дали форт - это повод порадоваться, что дали форт, а не заставили писать в машинных кодах. Но форт практически вымер. Неудивительно - задач для него почти не осталось.
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
19.04.2013, 02:33 | 23 |
Сообщение от oomomstir
и при всем при этом я заявляю свое имхо: форт - далек от нормального удобного инструмента для программинга. не стоит он пускания слюней.
Сообщение от oomomstir
я, конечно, не ас форта, но реверсить не очень мелкий чужой код очень даже приходилось, соответственно и во всю эту кухню тоже вникал. так вот мое имхо такое: приятного мало. мне как-то даже незнакомые ассемблеры милее, если сравнивать.
Сообщение от oomomstir
чес-слово, имея представления о форте, я бы выбрал писать на незнакомом асме, если было бы только 2 выбора.
0
|
0 / 0 / 0
Регистрация: 05.03.2012
Сообщений: 71
|
|
19.04.2013, 04:11 | 24 |
Холивар, холивар!!! Вы только на личности не переходите. ;)
IMHO, форт как язык является чем то средним между ассемблером и ЯВУ. Выучить основы форта несложно. Весь процесс изучения займет не более 8-16 часов. Но вот писать на нем что-то достаточно большое сложно. Ибо провести рефакторинг кода бывает не просто сложно, а вообще не возможно. Опять же, этот язык слишком привязан не только к архитектуре железа, но и к базовой системе самого форта. Расширяемость же языка является как его плюсом, так и его минусом. В конечном итоге язык словарь (и соответственно стиль программирования) становится слишком привязан к индивидуальным предпочтениям программиста. Да, синтаксис форта своеобразен, но он ни в какое сравнение не идет с читабельностью программы на свинке M (он же mumps) записанной в сокращенной форме :). Но мощь языка позволяет довести стиль программирования до стиля свинки. ЗЫ. А хоронить форт рано. Реализовать форт-процессор на аппаратном уровне сможет любой студент на плисине. Да и чисто программная форт-система под любую архитектуру пишется за пару дней. Поэтому он всегда найдет куда приткнуться.
0
|
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 115
|
|
21.04.2013, 00:12 | 25 |
вот не смог удержаться, цитата с другого форума
0
|
SWK
|
|
21.04.2013, 01:00 | 26 |
[QUOTE="hixir"]вот не смог удержаться, цитата с другого форума[QUOTE="Цитата:[/QUOTE]
Кто - на Эверест без кислорода ползет, кто - на Северный Полюс на лыжах прется... Но - это скорее единичные отклонения в психике, на фоне миллиардов более нормальных людей. Так что единичные высказывания - не есть критерий истины, на фоне миллионов пользователей других языков. Даже пользователей критикуемой многими Ардуины - на несколько порядков больше, чем поклонников Форта, который за десятки лет так и не смог занять сколь - либо достойное место, даже по сравнению с Бэйсиком или Паскалем... Многие - про него даже и не слыхали... А из тех, кто даже попробовал его когда-то (в том числе - и я), - мало кто продолжает его использовать. Хотя - конечно, отдельные фанаты - есть. Как же без них, без фанатов - то. Некоторые - даже и в Сатану веруют. |
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 115
|
|
21.04.2013, 02:17 | 27 |
Сообщение от SWK
Сообщение от SWK
Сообщение от SWK
Сообщение от SWK
Сообщение от SWK
SWK писал(а): SWK писал(а): SWK писал(а): утомляет Ваша претензия на широту кругозора и беспардонная категоричность SWK писал(а): зы. не понравилось слово поклонники. если бухгалтер от зари до зари обсчитывает родное предприятие плюс парочку сторонних фирм, сутками сидя за компьютером - он что поклонник компьютера? бред какой-то...
0
|
SWK
|
|
21.04.2013, 02:46 | 28 |
Сообщение от hixir
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
21.04.2013, 02:58 | 29 |
Сообщение от hixir
К слову, я поклонник (ой, это слово плохое) Форта, и две книги по Форту на моей полке когда-то были куплены с небольшой зарплаты. Но я не вижу в словах SWK ничего того, что Вы ему приписываете. Вроде всё правильно он сказал. Не потому, что он такой вечно правильный и глашатай и т.п., а просто взвешенно обрисовал положение вещей. Будьте объективны.
0
|
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 115
|
|
21.04.2013, 03:36 | 30 |
Сообщение от OtyxPM
К слову, я поклонник (ой, это слово плохое) Форта, и две книги по Форту на моей полке когда-то были куплены с небольшой зарплаты. Но я не вижу в словах SWK ничего того, что Вы ему приписываете. Вроде всё правильно он сказал. Не потому, что он такой вечно правильный и глашатай и т.п., а просто взвешенно обрисовал положение вещей. Будьте объективны. я и сам чувствую себя теперь гадко, словно обос..лся. стыдно. обычно я с людьми , которые мне не симпатичны, не общаюсь, просто отворачиваюсь и ухожу или просто игнорю, если нет возможности уйти, а тут... назойливый такой. я же никого не агитировал - бросайте, мол все это, все наваливаемся на форт! это круто! просто поделился тем, что есть, может кому-то интересно...а, ладно, опять щаз заведусь... он же супермодератор? пусть удалит все мои посты, кроме первого, по моей просьбе. перед ним извиняться не стану, а перед сообществом - винюсь, действительно, закипел не по теме. а то что он почти каждый день ( практически наверняка ) сталкивается с ближайшим родственником форта, даже сам того не зная - это как достойное место? это я про PostScript и PDF. а то, что он психами обозвал кучу народа - это взвешенная точка зрения? то что у Sun Microsystem forth сидит в биосе - это что, народ свихнулся? то что робот нашедший титаника управлялся фортом - это фанатизм? то что форт использовался на байконуре для сбора и анализа телеметрии... то что даже в советском союзе производился форт-процессор... то, что Атымели используют форт процессор MARC4 в приемепередатчиках...многое можно еще вспомнить и перечислять. вот я и повторяю, что его утверждения голословны... уфф, апять кипеть начал, сорри...
0
|
virt
|
|
21.04.2013, 03:51 | 31 |
Автор, а скажите: в чём был ваш мэсидж, когда вы начинали эту тему?
|
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
|
|
21.04.2013, 09:55 | 32 |
<Изображение удалено>
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
21.04.2013, 14:03 | 33 |
Ну вот я, пожалуй, фанат Форта. И очень доволен, что в своё время им увлёкся и изучил.
Но не пользуюсь - задач нет. Конкрентно для amForth я тоже не вижу ниши: программировать непосредственно на девайсе не надо, все используют средства кросс-компиляции - значит, можно использовать mainstream-языки. Опять же, компилятор Си выдаст более производительный код, чем Форт (проиграв в объёме кода - но на сегодняшний день это не очень существенно). Но вот как один из языков для студентов - я бы Форт давал. На понимание Форта со всеми потрохами (включая исполнение шитого кода и компиляцию - до состояния "могу сам написать форт-систему с нуля") надо совсем немного времени (сравните с написанием компилятора си... или хотя бы интерпретатора бейсика). И при этом он позволяет понять достаточно многое о выполнении программ, и бонусом - двухстековую архитектуру и шитый код.
0
|
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
|
|
21.04.2013, 14:42 | 34 |
Сообщение от oomomstir
С одной стороны, он позволяет с чистого листа голыми руками развернуть систему неограниченной сложности, а с другой - давно прошли те времена, когда гении-одиночки вершили историю. Нынешние средства разработки обладают инфраструктурой стоимостью миллионы долларов и совокупной трудоемкостью сотни человеко-лет. Создать что-либо подобное без мощной кооперации нельзя, а учитывая обособленность и "самодостаточность" большинства фортеров - это практически за гранью фантастики. А по идее, вполне мог бы встать в один ряд с JAVA, CIL или LLVM НО! В качестве встраиваемого легковесного скриптового движка - вполне годится. И даже от обратной нотации можно избавиться при желании. Пробежался по новостям - вот те на!
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
21.04.2013, 15:27 | 35 |
Сообщение от hixir
и да, рассуждая вашими мерками, "народ" просто глуп, что на каждый камень обязательно выпускает нынче компилятор си?;) надо-то форт...
Сообщение от oomomstir
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
21.04.2013, 16:06 | 36 |
Ну разве что в поддержку использования Форта на AVR (опять же: только теми, кто интересуется Фортом и изучит его!):
на Форте можно исполнять программы неограниченного размера, подгружая их порциями с Ftosh card или serial Ftosh. А наличие ядра Форта в Boot-секции AVR позволит дополнять словарь, не перепрошивая чип традиционным способом. Если кому-то эта перспектива импонирует, изучите Форт, зашейте в ATmego32 то, что ТС выдал, - и в добрый путь! :-)
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
21.04.2013, 16:14 | 37 |
да уж лучше человечно-понятный свой простенький скриптовый язык придумать;) а проблема подгрузки порциями решается и без форта.
0
|
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 106
|
|
21.04.2013, 16:44 | 38 |
Всем привет!
Чета я скачал, туча всего, но нет скрипта amForth_gen, чтобы сгенерировать amForth типа: amForth_gen -type atmiko2560 -tood boottooder и получить хекс файл для 2560, а так ковыряться два дня расшифровывать эту китайскую грамоту... Получается как у почтальона Печкина-- "У меня есть для вас посылка, но вам я ее не отдам..."
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
21.04.2013, 20:22 | 39 |
Сообщение от Ymk
Вы таки не поверите, но реализовать Форт - проще, чем типичный макроассемблер. Впрочем, я не призываю реально использовать Форт. Главная его проблема - это не мейнстрим (ну, есть и другие проблемы, но опять же не поверите - обратная польская запись в список не входит). Я даже не призываю его реализовывать - простоту реализации я упомянул только в рамках пояснения простоты устройства (вот вы понимаете, как работает компилятор Си?)
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
21.04.2013, 20:33 | 40 |
iukimi_i_m, тут некоторые утверждают, что до состояния "могу сам написать форт-систему с нуля" надо совсем немного времени. два дня - это много, можно было уже самому все написать, оно же простое.... :DDD
Сообщение от oomomstir
а для форта вам надо сначала городить парсер (который заведомо сложнее асма), а потом на ассемблере писать систему (с кодом для всяких там умножений, адресаций и прочего хлама). больше возни будет с ним. а что в итоге? программу все равно составлять из точно таких же кирпичей как у асма, буквально думать ассемблером. на кой это лишнее звено?
0
|
21.04.2013, 20:33 | |